KR20230030179A - Driving method of fingerprint high speed matching system applicable to distributed environment - Google Patents

Driving method of fingerprint high speed matching system applicable to distributed environment Download PDF

Info

Publication number
KR20230030179A
KR20230030179A KR1020210112089A KR20210112089A KR20230030179A KR 20230030179 A KR20230030179 A KR 20230030179A KR 1020210112089 A KR1020210112089 A KR 1020210112089A KR 20210112089 A KR20210112089 A KR 20210112089A KR 20230030179 A KR20230030179 A KR 20230030179A
Authority
KR
South Korea
Prior art keywords
matching
mpu
fingerprint
request
candidate list
Prior art date
Application number
KR1020210112089A
Other languages
Korean (ko)
Inventor
김태현
신관균
민경철
Original Assignee
(주)위지원시스템즈
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 (주)위지원시스템즈 filed Critical (주)위지원시스템즈
Priority to KR1020210112089A priority Critical patent/KR20230030179A/en
Publication of KR20230030179A publication Critical patent/KR20230030179A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/53Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/12Fingerprints or palmprints
    • G06V40/1365Matching; Classification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0861Network architectures or network communication protocols for network security for authentication of entities using biometrical features, e.g. fingerprint, retina-scan
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Abstract

The present invention relates to a method for driving a high-speed fingerprint matching system applicable to a distributed environment. The method for driving a high-speed fingerprint matching system comprises: a matching request signal registration step; an MPU matching request step; a matching step; and an MPU-specific candidate list selection step. According to the present invention, the identity of a subject can be quickly confirmed.

Description

분산환경에 적용 가능한 고속 지문 고속매칭 시스템의 구동방법{Driving method of fingerprint high speed matching system applicable to distributed environment}Driving method of fingerprint high speed matching system applicable to distributed environment

본 발명은 다수의 매칭(Matching) 서버에서 빠른 속도로 데이터를 얻어와 고속의 1vsN(1 대 다수) 지문 매칭 방법을 통하여 빠른 시간에 대상자의 신원을 확인하여, 대량의 지문식별이 가능하며, 분산환경에 적용 가능한 지문 고속매칭 시스템 의 구동방법에 관한 것이다.The present invention obtains data from a plurality of matching servers at high speed and quickly confirms the identity of a subject through a high-speed 1vsN (one to many) fingerprint matching method, enabling a large amount of fingerprint identification and distributing It relates to a driving method of a fingerprint high-speed matching system applicable to the environment.

수백만 건의 지문이나 수천만 건 등 대량의 지문을 대상으로 지문 검색을 처리하는 데는 많은 시간이 든다. 예를 들어 1200만건의 지문을 대상으로 초당 만건의 지문 검색을 수행하는 경우 전체 대상에 대해 지문 검색을 수행하는 시간은 1200초(20분)가 걸리는 지문 대량 검색에는 수행에 있어 많은 시간이 필요하다. 그 뿐 아니라 대량의 지문 데이터를 얻어오는 것에도 많은 시간이 소요된다. 지문 특징점 데이터를 저장하는 파일 또는 DB에서 데이터를 얻어오는 데는 내용을 검색하는 시간과 네트워크 시간 등에 있어 상당한 시간과 메모리 및 디스크의 공간이 필요하며, 데이터를 얻어오는 시간이 지문 매칭 알고리즘의 처리시간 보다 더 많이 드는 것이 일반적이다.It takes a lot of time to process a fingerprint search for a large number of fingerprints, such as millions of fingerprints or tens of millions of fingerprints. For example, if 10,000 fingerprints are searched per second for 12 million fingerprints, it takes 1200 seconds (20 minutes) to search all the fingerprints. . In addition, it takes a lot of time to obtain a large amount of fingerprint data. Obtaining data from a file or DB that stores fingerprint characteristic point data requires considerable time and memory and disk space in terms of content search time and network time, and the time to obtain data is longer than the processing time of the fingerprint matching algorithm. It is common to pay more.

따라서, 지문 검색을 요청한 다음 매칭시스템에서 60초 이내에 대상자의 신원을 확인하기 위해, 빠르게 검색용 지문 데이터를 확보하고, 빠른 속도로 지문 검색을 처리하는 알고리즘을 통하여 다수의 서버에서 다수의 지문을 검색하는 방법이 요망된다.Therefore, in order to confirm the identity of the subject within 60 seconds in the matching system after requesting a fingerprint search, fingerprint data for search is quickly secured and multiple fingerprints are searched on multiple servers through an algorithm that processes fingerprint search at high speed. A way to do this is desired.

따라서, 본 발명은 다수의 매칭(Matching) 서버에서 빠른 속도로 데이터를 얻어와 고속의 1vsN(1 대 다수) 지문 매칭 방법을 통하여 빠른 시간에 대상자의 신원을 확인하여 대량의 지문식별이 가능하며, 분산환경에 적용 가능한 지문 고속매칭 시스템 의 구동방법을 제안한다.Therefore, the present invention obtains data from a plurality of matching servers at high speed and identifies a subject in a short time through a high-speed 1vsN (one to many) fingerprint matching method, thereby enabling a large amount of fingerprint identification, We propose a driving method for a high-speed fingerprint matching system applicable to a distributed environment.

본 발명에서는, 다수의 서버에서 요청한 지문 검색 작업을 수행하기 위해 매칭 작업을 수행하는 매칭 처리 유닛(MPU, Matching Processing Unit)와 매칭 요청 작업 및 결과를 취합하고 관리하며 MPU들을 관리하는 매칭 제어 유닛(MCU, Matching Control Unit)로 구성된다.In the present invention, a matching processing unit (MPU, Matching Processing Unit) that performs a matching task in order to perform a fingerprint search task requested by a plurality of servers, and a matching control unit that collects and manages matching request tasks and results, and manages the MPUs ( It consists of MCU, Matching Control Unit).

선행기술로, 일본 특허공개 2003-30661호는 1개의 입력된 지문을 다수의 등록지문과 매칭하는 지문 조합 장치에 관한 것이나, 매칭방법은 기존에 방식을 그대로 적용하고 있어 지문 매칭 속도가 빠르지 않다.As a prior art, Japanese Unexamined Patent Publication No. 2003-30661 relates to a fingerprint combination device that matches one input fingerprint with a plurality of registered fingerprints, but the matching method uses the existing method as it is, so the fingerprint matching speed is not fast.

본 발명이 이루고자 하는 과제는, 다수의 매칭(Matching) 서버에서 빠른 속도로 데이터를 얻어와 고속의 1vsN(1 대 다수) 지문 매칭 방법을 통하여 빠른 시간에 대상자의 신원을 확인하여, 대량의 지문식별이 가능하며, 분산환경에 적용 가능한 지문 고속매칭 시스템 의 구동방법에 관한 것이다.The problem to be achieved by the present invention is to quickly obtain data from a plurality of matching servers and quickly identify a subject through a high-speed 1vsN (one to many) fingerprint matching method, thereby identifying a large amount of fingerprints. This paper relates to a driving method of a fingerprint high-speed matching system applicable to a distributed environment.

본 발명이 이루고자 하는 다른 과제는, 대량의 대상 지문들에 대하여 고속으로 지문 데이터를 얻어오고 관리하며, 분산환경에서 동작하는 MCU(Matching Control Unit)와 다수의 MPU(Matching Processing Unit)의 구조를 구비하며, 다수의 MPU에서 매칭 수행한 결과를 취합하고 취합한 결과에서 상위결과를 등록하는, 분산환경에 적용 가능한 고속 지문 고속매칭 시스템의 구동방법을 제공하는 것이다.Another task to be achieved by the present invention is to acquire and manage fingerprint data at high speed for a large number of target fingerprints, and to have a structure of a Matching Control Unit (MCU) and a plurality of Matching Processing Units (MPUs) operating in a distributed environment. It is to provide a driving method of a high-speed fingerprint high-speed matching system applicable to a distributed environment, which collects matching results from a plurality of MPUs and registers the upper result from the collected results.

상기 과제를 해결하기 위해, 본 발명의 지문 매칭 시스템 구동방법은, 경찰, 출입국, 군인, 금융, 의료, 사회복지 중의 하나의 업무와 관련하여 신원확인을 하기 위한 단말기인, 신원확인 검출 장치로부터 웹 서버로, 입력 지문과 함께 신원 확인 요청이 입력되면, 웹 서버는 입력 지문을 포함하는 매칭 요청 정보를 API(application programming interface) 서버로 전송하며, API 서버에 의해 어매칭 DB에 매칭 요청 정보가 등록되는, 매칭 요청신호 등록 단계; 매칭 요청신호 등록 단계 후, MCU(Matching Control Unit)는 매칭 DB에 등록된 매칭 요청 정보를 읽어들이고, 읽어들인 매칭 요청에 대한 결과 데이터 셋을 생성한 후, 복수의 MPU(Matching Processing Unit)에게 매칭 요청 정보를 전송하는, MPU로의 매칭 요청단계; MPU는 받은 매칭 요청 정보를 기반으로 요청 특징점 정보와 대상 특징점 정보의 묶음을 매칭 큐(Matching Queue)에 기록하고, 매칭 쓰레드는 매칭 큐에 올라오는 해당 매칭 정보들을 얻어서 매칭을 진행하고 결과를 기록하는, 매칭 단계; 매칭 단계에서 매칭 요청에 대한 처리가 완료되면, MPU는 매칭 결과를 취합하고 점수가 높은 순으로 결과를 정렬하고, 상위로부터, 기 설정된 후보자 건수만큼의 결과를, MPU별 후보자 목록으로서, MCU로 전송하는, MPU별 후보자 목록 선정단계;를 포함하는 것을 특징으로 한다.In order to solve the above problems, the fingerprint matching system driving method of the present invention is a terminal for identifying an identity in relation to one of police, immigration, military, finance, medical, and social welfare, from an identification detection device to the web. To the server, when an identity verification request is input together with the input fingerprint, the web server transmits matching request information including the input fingerprint to the API (application programming interface) server, and the matching request information is registered in the matching DB by the API server. Matching request signal registration step; After the matching request signal registration step, the MCU (Matching Control Unit) reads the matching request information registered in the matching DB, creates a result data set for the read matching request, and performs matching on multiple MPUs (Matching Processing Units) Sending the request information, matching request step to the MPU; Based on the received matching request information, the MPU records a bundle of requested feature point information and target feature point information in a matching queue, and the matching thread obtains the corresponding matching information from the matching queue to proceed with matching and record the result. , matching step; When the processing of the matching request is completed in the matching step, the MPU collects the matching results, sorts the results in ascending order of scores, and transmits the results as many as the preset number of candidates from the top to the MCU as a candidate list for each MPU. It is characterized in that it includes; a step of selecting a list of candidates for each MPU.

본 발명의 지문 매칭 시스템 구동방법은, MCU는 MPU별 후보자 목록 선정단계에서 생성된 매칭 결과인 MPU별 후보자 목록을 MPU로부터 수신하여, 매칭 결과 데이터 셋에 기록하고, 매칭 결과 데이터 셋에 모든 MPU로부터의 MPU별 매칭 결과를 수신하면, 수신된 모든 MPU별 매칭 결과를 정렬하여 후보자 목록을 생성하고, 매칭 DB에 기록하는, 최종 후보자 목록 선정단계;를 더 포함한다.In the fingerprint matching system driving method of the present invention, the MCU receives from the MPU the candidate list for each MPU, which is the matching result generated in the step of selecting the candidate list for each MPU, records it in the matching result data set, and records it in the matching result data set from all MPUs. Upon receiving the matching result for each MPU of , a final candidate list selection step of generating a candidate list by sorting the matching results for all received MPUs and recording them in a matching DB; further includes.

본 발명의 지문 매칭 시스템 구동방법은, 웹서버가 매칭 DB로 매칭 결과를 요청하고, 최종 후보자 목록 선정단계에서 선정된 후보자 목록을 조회하고, 선정된 후보자 목록을 신원확인 검출 장치로 전송하는, 선정된 후보자 목록 전송단계;를 더 포함한다.In the fingerprint matching system operating method of the present invention, a web server requests a matching result from a matching DB, searches a list of candidates selected in the final candidate list selection step, and transmits the selected candidate list to an identification detection device. The step of transmitting the list of candidates; is further included.

MCU는 네트워크의 처리를 담당하는 네트워크 매니저(Network Manager)와, 받은 요청사항을 처리하는 잡 매니저(Job Manager)와, 신규 지문 검색 요청이 있는지 확인하고 MPU들에게 매칭 요청을 보내는 리퀘스트 매니저(Request Manager)와, 결과 데이터를 취합하고 모든 결과를 받았을 때 DB(데이터베이스)에 결과를 기록하는 리절트 세트(Result Set)와 DB(데이터베이스) 처리를 담당하는 매칭(Matching) DAO(Data Access Object), MPU들에게 요청을 전송하는 MPU 클라이언트(Client)를 포함한다.The MCU includes a network manager in charge of network processing, a job manager that processes received requests, and a request manager that checks whether there is a new fingerprint search request and sends a matching request to MPUs. ), Result Set that collects result data and records results in DB (Database) when all results are received, Matching DAO (Data Access Object), and MPU that are in charge of DB (Database) processing It includes an MPU client (Client) that sends requests to them.

MPU는 네트워크의 처리를 담당하는 네트워크 매니저(Network Manager), 받은 요청사항을 처리하는 잡 매니저(Job Manager), 매칭 작업을 쓰레드 형태로 진행하는 매칭 쓰레드(Matching Thread), 전체 대상 지문 데이터를 관리하는 매칭 데이터 세트(Matching Data Set), MCU에게 결과를 전송하는 MCU 클라이언트(Client)를 포함한다.The MPU consists of a Network Manager that handles network processing, a Job Manager that handles received requests, a Matching Thread that performs matching tasks in the form of threads, and that manages all target fingerprint data. It includes a matching data set and an MCU client that transmits the result to the MCU.

MCU 및 MPU를 포함하는 매칭서버 부는, 매칭 시스템 특징점 직접 관리에 있어서, 1vsN 매칭 알고리즘 및 1vs1 매칭 알고리즘에서 처리하는 단위로 특징점 데이터를 묶어서 처리하고, 위치를 Key/Value 형태로 처리하는 메모리 관리자를 만들고, 메모리 관리자에 기본적인 데이터를 적재한 다음 지문 데이터를 읽어서 처리하는 방식으로 이루어진다.In the direct management of matching system feature points, the matching server unit including MCU and MPU processes feature point data in units processed by 1vsN matching algorithm and 1vs1 matching algorithm, and creates a memory manager that processes locations in Key/Value form , After loading basic data in the memory manager, reading and processing the fingerprint data is done.

본 발명의 분산환경에 적용 가능한 고속 지문 고속매칭 시스템의 구동방법은, 다수의 매칭(Matching) 서버에서 빠른 속도로 데이터를 얻어와 고속의 1vsN(1 대 다수) 지문 매칭 방법을 통하여 빠른 시간에 대상자의 신원을 확인하며, 분산환경에 적용 가능하며, 대량의 지문식별이 가능하다. The driving method of the high-speed fingerprint high-speed matching system applicable to the distributed environment of the present invention obtains data at high speed from a plurality of matching servers and uses a high-speed 1vsN (one to many) fingerprint matching method. It verifies the identity of a person, can be applied to a distributed environment, and can identify a large number of fingerprints.

즉, 본 발명은, 대량의 대상 지문들에 대하여 고속으로 지문 데이터를 얻어오고 관리하는 것이 가능하며, 대량의 대상 지문들에 대하여 고속으로 1vs다수 지문 매칭을 수행하는 알고리즘을 구비하며, 분산환경에서 동작하는 MCU(Matching Control Unit)와 다수의 MPU(Matching Processing Unit)의 구조로 설계되어 있으며, 다수의 MPU에서 매칭 수행한 결과를 취합하고 취합한 결과에서 상위결과를 등록하도록 이루어져 있다.That is, the present invention is capable of obtaining and managing fingerprint data at high speed for a large number of target fingerprints, and has an algorithm for performing 1 vs. multiple fingerprint matching at high speed for a large number of target fingerprints, in a distributed environment. It is designed with a structure of an operating MCU (Matching Control Unit) and multiple MPUs (Matching Processing Units), and is configured to collect matching results from multiple MPUs and register the upper result from the collected results.

따라서, 본 발명의 지문 고속매칭 시스템은, 빠르게 검색용 지문 데이터를 확보하고, 빠른 속도로 지문 검색을 처리하는 알고리즘을 통하여 다수의 서버에서 다수의 지문을 검색하도록 이루어져, 사용자가 지문 검색을 요청한 다음 매칭시스템에서 60초 이내에 대상자의 신원을 확인가능하다.Therefore, the fingerprint high-speed matching system of the present invention quickly secures fingerprint data for search and searches for a plurality of fingerprints in a plurality of servers through an algorithm that processes fingerprint search at high speed. The identity of the subject can be confirmed within 60 seconds in the matching system.

또한, 본 발명은 시제품 테스트베드 환경 개발에 적용할 수 있다.In addition, the present invention can be applied to the development of a prototype test bed environment.

도 1은 본 발명의 분산환경에 적용 가능한 고속 지문 고속매칭 시스템의 구동방법을 개략적으로 설명하기 위한 설명도이다.
도 2는 도 1의 지문 고속매칭 시스템의 매칭 서버부의 구성도이다.
도 3은 도 1의 지문 고속매칭 시스템의 구동을 설명하기 위한 흐름도이다.
1 is an explanatory diagram for schematically explaining a driving method of a high-speed fingerprint high-speed matching system applicable to a distributed environment according to the present invention.
FIG. 2 is a configuration diagram of a matching server unit of the fingerprint high-speed matching system of FIG. 1 .
FIG. 3 is a flowchart illustrating the operation of the fingerprint high-speed matching system of FIG. 1 .

본 발명의 분산환경에 적용 가능한 고속 지문 고속매칭 시스템의 구동방법을 첨부된 도면을 참조하여 이하 상세히 설명한다.A driving method of a high-speed fingerprint high-speed matching system applicable to a distributed environment according to the present invention will be described in detail below with reference to the accompanying drawings.

<지문 고속매칭 시스템의 구성><Configuration of high-speed fingerprint matching system>

도 1은 본 발명의 대량의 지문식별을 위한 지문 고속매칭 시스템을 개략적으로 설명하기 위한 설명도이고, 도 2는 도 1의 지문 고속매칭 시스템의 매칭 서버부의 구성도이다.1 is an explanatory diagram schematically illustrating a fingerprint high-speed matching system for identifying a large number of fingerprints according to the present invention, and FIG. 2 is a configuration diagram of a matching server unit of the fingerprint high-speed matching system of FIG. 1 .

지역경찰관련 신원확인부, 출입국 신원확인부, 군 보안관련 신원확인부, 금융서비스 관련 적용부, 의료관련 환자 신원확인부, 사회복지관련 신원확인부 등의 다양한 신원확인 검출 장치(10)로부터 신원확인 요청신호를, 인터넷망을 통해, 웹서버(또는 메인서버 또는 응용서버)(20)에 요청하면, 신원확인 검출 장치(10)는 보안 인증을 통해, 웹서버(20)를 통해 어플리케이션 서비스부(50)의 API(application programming interface) 서버(51)와 연동되고, 신원확인 검출 장치(10)는 웹서버(20)를 통해, 특정 어플리케이션(예로, 지역경찰관련 신원확인 어플리케이션)의 신원확인을 위한 매칭 요청신호를 API 서버(51)로 전송하게 되고, API 서버(51)는 수신된 매칭요청신호를 어플리케이션 DB(52)의 매칭 DB에 등록한다. 매칭 DB에 등록된 매칭 요청신호를 순서대로, API 서버(51)가 매칭 서버부(매칭서버 그룹)(100)로 전송하고, 매칭 서버부(매칭서버 그룹)(100)에서 매칭된 결과를 API 서버(51)가 수신하여, 웹서버(20)를 통해 신원확인 검출 장치(10)로 전송한다.Identity from various identification detection devices (10) When a confirmation request signal is requested to the web server (or main server or application server) 20 through the Internet network, the identification detection device 10 performs security authentication through the web server 20 to the application service unit. It is linked with the application programming interface (API) server 51 of (50), and the identification detection device 10 performs identification of a specific application (eg, a local police-related identification application) through the web server 20. A matching request signal is transmitted to the API server 51, and the API server 51 registers the received matching request signal in the matching DB of the application DB 52. The API server 51 transmits the matching request signals registered in the matching DB to the matching server unit (matching server group) 100 in order, and the matched result from the matching server unit (matching server group) 100 is returned to the API The server 51 receives it and transmits it to the identification detection device 10 through the web server 20 .

여기서, 신원확인 검출 장치(10)는 지역경찰관련 신원확인부, 출입국 신원확인부, 군 보안관련 신원확인부, 금융서비스 관련 적용부, 의료관련 환자 신원확인부, 사회복지관련 신원확인부 등과 관련된 담당자의 단말기(경우에 따라서는 스마트폰)일 수 있다.Here, the identification detection device 10 is related to a local police-related identification unit, an immigration identification unit, a military security-related identification unit, a financial service-related application unit, a medical-related patient identification unit, and a social welfare-related identification unit. It may be the person in charge's terminal (smart phone in some cases).

웹 서버(20) 등을 통하여 매칭 요청 신호가 수신되어, API 서버(51)에 의해 매칭 DB에 매칭 요청 신호가 등록되면, MCU(110)는 자동으로 매칭 DB에 등록된 신규 매칭 요청 정보를 읽어와 해당하는 매칭 요청에 대한 결과 데이터 셋을 생성한 다음, MPU(120)들에게 매칭 요청을 전송한다. MPU(120)는 받은 매칭 요청 정보를 기반으로 요청 특징점 정보와 대상 특징점 정보의 묶음을 매칭 큐에 기록하고, 매칭 쓰레드는 매칭 큐에 올라오는 해당 매칭 정보들을 얻어서 매칭을 진행하고 결과를 기록한다. 이렇게 하나의 매칭 요청에 대한 처리가 완료되면 MPU(120)는 매칭 결과를 취합하고 점수가 높은 순으로 결과를 정렬한 다음 상위 N건(예: 100건)의 결과를 MCU(110)로 전달한다. MCU(110)는 MPU(120)에서 매칭 결과를 받으면 매칭 결과 데이터 셋에 기록하고, 매칭 결과 데이터 셋은 모든 MPU(120)에서 매칭 결과를 받으면 그 결과를 다시 정렬한 다음 매칭 DB에 기록한다.When a matching request signal is received through the web server 20 and the like and the matching request signal is registered in the matching DB by the API server 51, the MCU 110 automatically reads new matching request information registered in the matching DB. After generating a result data set for a matching request corresponding to and transmits a matching request to the MPU (120). Based on the received matching request information, the MPU 120 records a bundle of requested feature point information and target feature point information in a matching queue, and the matching thread obtains corresponding matching information from the matching queue to perform matching and record the result. When the processing of one matching request is completed, the MPU 120 collects the matching results, sorts the results in order of high score, and then transfers the results of the top N cases (eg, 100 cases) to the MCU 110 . When the MCU 110 receives a matching result from the MPU 120, it is recorded in a matching result data set, and when the matching result data set receives a matching result from all MPUs 120, the result is rearranged and then recorded in the matching DB.

매칭 서버부(100)는 매칭 제어 유닛(MCU, Matching Control Unit)(110)과 다수의 매칭 처리 유닛(MPU, Matching Processing Unit)(120)으로 구성된다. 여기서, 지문 고속매칭 시스템의 핵심기능은 매칭 서버부(100)에서 행하여 지므로, 지문 고속매칭 시스템은 크게 단일의 매칭 제어 유닛(MCU, Matching Control Unit)(110)과 다수의 매칭 처리 유닛(MPU, Matching Processing Unit)(120)으로 구성된다고 할 수 있다. The matching server unit 100 is composed of a matching control unit (MCU) 110 and a plurality of matching processing units (MPUs) 120 . Here, since the core function of the fingerprint high-speed matching system is performed in the matching server unit 100, the fingerprint high-speed matching system largely consists of a single matching control unit (MCU) 110 and a plurality of matching processing units (MPU, Matching Processing Unit) (120).

MCU(110)는 네트워크의 처리를 담당하는 네트워크 매니저(Network Manager), 받은 요청사항을 처리하는 잡 매니저(Job Manager), 신규 지문 검색 요청이 있는지 확인하고 MPU들에게 매칭 요청을 보내는 리퀘스트 매니저(Request Manager), 결과 데이터를 취합하고 모든 결과를 받았을 때 DB(데이터베이스)에 결과를 기록하는 리절트 세트(Result Set)와 DB(데이터베이스) 처리를 담당하는 매칭(Matching) DAO(Data Access Object), MPU(120)들에게 요청을 전송하는 MPU 클라이언트(Client) 등을 포함한다. The MCU 110 includes a network manager in charge of network processing, a job manager for processing received requests, and a request manager that checks whether there is a new fingerprint search request and sends a matching request to MPUs. Manager), Result Set that collects result data and records results in DB (Database) when all results are received, Matching DAO (Data Access Object), MPU responsible for DB (Database) processing (120) and includes an MPU client (Client) that transmits a request.

MPU(120)는 네트워크의 처리를 담당하는 네트워크 매니저(Network Manager), 받은 요청사항을 처리하는 잡 매니저(Job Manager), 매칭 작업을 쓰레드 형태로 진행하는 매칭 쓰레드(Matching Thread), 전체 대상 지문 데이터를 관리하는 매칭 데이터 세트(Matching Data Set), MCU에게 결과를 전송하는 MCU 클라이언트(Client) 등을 포함한다.The MPU 120 includes a network manager in charge of network processing, a job manager for processing received requests, a matching thread for performing matching tasks in the form of threads, and all target fingerprint data. It includes a matching data set (Matching Data Set) that manages, and an MCU client (Client) that transmits the result to the MCU.

도 3은 도 1의 지문 고속매칭 시스템의 구동을 설명하기 위한 흐름도이다. FIG. 3 is a flowchart illustrating the operation of the fingerprint high-speed matching system of FIG. 1 .

매칭 요청단계로, 웹 서버(20) 등을 통하여 매칭 요청 신호가 수신되어, API 서버(51)에 의해 어플리케이션 DB(52)의 매칭 DB에 매칭 요청 신호가 등록되면(S110), API 서버(51)를 통해, MCU(110)는 매칭 DB에 등록된 신규 매칭 요청 정보를 읽어와서(S120), 해당하는 매칭 요청에 대한 결과 데이터 셋을 생성한 후(S130), MPU(120)들에게 매칭 요청을 전송한다(S140). In the matching request step, when a matching request signal is received through the web server 20 and the like, and the matching request signal is registered in the matching DB of the application DB 52 by the API server 51 (S110), the API server 51 ), the MCU 110 reads new matching request information registered in the matching DB (S120), generates a result data set for the corresponding matching request (S130), and then requests matching to the MPUs 120 is transmitted (S140).

매칭 단계로, MPU(120)는 받은 매칭 요청 정보를 기반으로 요청 특징점 정보와 대상 특징점 정보의 묶음을 매칭 큐(Matching Queue)에 기록하고(S150), 매칭 쓰레드는 매칭 큐에 올라오는 해당 매칭 정보들(즉, 요청 특징점 정보와 대상 특징점 정보)을 얻어서 매칭을 진행하고 결과를 기록한다(S160). 여기서, 매칭 쓰레드는 요청 특징점을 기준으로 매칭을 수행한다.In the matching step, the MPU 120 records a bundle of requested feature point information and target feature point information in a matching queue based on the received matching request information (S150), and the matching thread performs the corresponding matching information uploaded to the matching queue. (ie, requested feature point information and target feature point information) are obtained, matching is performed, and the result is recorded (S160). Here, the matching thread performs matching based on the requested characteristic points.

MPU별 후보자 목록 선정단계로, 매칭 단계에서 하나의 매칭 요청에 대한 처리가 완료되면, MPU(120)는 매칭 결과를 취합하고 점수가 높은 순으로 결과를 정렬하고(S170), 상위 소정건수(즉, 상위 N건(예: 100건))의 결과를, MPU별 후보자 목록으로서, MCU(110)로 전달한다(S180). In the MPU-specific candidate list selection step, when processing of one matching request is completed in the matching step, the MPU 120 collects matching results and sorts the results in order of high scores (S170), , The top N cases (eg, 100 cases)) are passed to the MCU 110 as a candidate list for each MPU (S180).

최종 후보자 목록 선정단계로, MCU(110)는 MPU(120)에서 매칭 결과로서 MPU별 후보자 목록을 수신하면, 이를 매칭 결과 데이터 셋에 기록하고, 매칭 결과 데이터 셋은 모든 MPU(120)에서 MPU별 매칭 결과(즉, MPU별 후보자 목록)를 받으면 그 결과를 다시 정렬하여 후보자 목록을 생성하고(S200), 이를 매칭 DB에 기록한다(S210). In the final candidate list selection step, when the MCU 110 receives the candidate list for each MPU as a matching result from the MPU 120, it is recorded in the matching result data set, and the matching result data set is selected for each MPU in all MPUs 120. When a matching result (ie, a candidate list for each MPU) is received, a candidate list is generated by rearranging the result (S200), and recorded in the matching DB (S210).

웹서버(20)는 매칭 DB로 매칭 결과를 요청하고, 최종 후보자 목록 선정단계에서 선정된 후보자 목록을 조회하고(S220), 이를 신원확인 검출 장치(10)로 전송하여 디스플레이한다.The web server 20 requests a matching result from the matching DB, searches the candidate list selected in the final candidate list selection step (S220), transmits it to the identification detection device 10, and displays it.

<데이터 페치(Fetch)><Data Fetch>

일반적으로, 데이터 페치 방법의 종류로서, 일반적으로, 지문 데이터는 DB에 저장하며, 저장한 지문 데이터는 DB 쿼리를 통하여 직접적으로 얻어오는 방법, 얻어온 데이터를 파일로 저장한 다음 파일을 기준으로 처리하는 방법, 얻어온 데이터를 Redis 등의 인메모리스토어를 이용하여 메모리 캐쉬처럼 사용하는 방법, 얻어온 데이터를 개발 프로그램 내부에 쌓아서 활용하는 방법 등이 있다. DB 쿼리를 통해 지문 매칭을 위한 데이터를 직접적으로 얻어오는 방법은 가장 직관적이고 일반적인 방법이나 DB 페치 시간이 상당히 소요되는 단점이 있다. 또한, 파일, 인메모리스토어, 프로그램 직접 관리 등의 방법의 경우 DB 쿼리를 통해 데이터를 페치하는 시간은 상대적으로 짧지만, DB에 저장된 지문 데이터와 파일 등에서 다루는 지문 데이터 간에 완전히 일치하는 자료라는 것을 확인하기 힘들다는 단점이 존재한다. 이렇게 처리하는 경우 우선적으로 최초의 자료를 DB에서 얻어와서 파일 등에 적재하는 절차가 필요하고, DB 데이터와의 싱크를 일치시키기 위한 추가적인 처리작업이 필요하다. 매칭 시스템 특징점 직접 관리의 경우 매칭 알고리즘에서 처리하는 단위로 특징점 데이터를 묶어서 처리하고, 그 위치를 Key/Value 형태로 처리하는 메모리 관리자를 만들고 그 메모리 관리자에 기본적인 데이터를 적재한 다음 지문 데이터를 읽어서 처리하는 방식으로 구성하였다. 다만 이런 형태로 특징점을 직접 관리하는 경우 물리적인 전체 메모리의 크기에 따라 읽을 수 있는 특징점 전체 데이터의 크기가 제한된다. 본 발명에서는, 각 Fetch 방법에서 테스트한 결과 DB Fetch에서 얻어오는 일반적인 방법은 채택하기 힘들 정도로 느렸고, 파일 혹은 인메모리스토어를 이용한 방법도 상대적으로 DB에 비해 빠르나 충분한 속도를 내기 힘들었기 때문에, 본 발명의 매칭시스템에서는, 즉, 매칭 요청단계의 데이터 패치는, 기본적으로 직접 메모리 관리자를 만들고 그 메모리 관리자에 직접적으로 특징점 데이터를 관리하도록 하였다.In general, as a type of data fetch method, generally, fingerprint data is stored in a DB, and the stored fingerprint data is directly obtained through a DB query, and the obtained data is stored in a file and then processed based on the file. method, how to use the obtained data as a memory cache by using an in-memory store such as Redis, and how to use the obtained data by stacking it inside the development program. The method of directly acquiring data for fingerprint matching through a DB query is the most intuitive and general method, but has a disadvantage in that it takes a considerable amount of time to fetch the DB. In addition, in the case of methods such as file, in-memory store, and program direct management, the time to fetch data through DB query is relatively short, but it is confirmed that fingerprint data stored in the DB and fingerprint data handled in the file are completely consistent. The downside is that it is difficult to do. In this case, first of all, a procedure of obtaining the first data from the DB and loading it into a file is required, and additional processing is required to match the sync with the DB data. In the case of direct management of feature points in the matching system, the feature point data is bundled and processed in units processed by the matching algorithm, a memory manager is created to process the location in the form of Key/Value, basic data is loaded into the memory manager, and fingerprint data is read and processed. configured in such a way. However, when the feature points are directly managed in this form, the size of all data of the feature points that can be read is limited according to the size of the entire physical memory. In the present invention, as a result of testing each fetch method, the general method obtained from DB fetch was too slow to be adopted, and the method using a file or in-memory store was relatively fast compared to DB, but it was difficult to achieve sufficient speed. In the matching system of the present invention, that is, in the data patch in the matching request step, a direct memory manager is basically created and feature point data is directly managed in the memory manager.

<매칭 알고리즘 처리><Processing Matching Algorithm>

기존의 1vs1 매칭 알고리즘의 경우 정확도는 매우 높으나 시간이 많이 걸리는 단점이 존재한다. 1vsN 매칭 알고리즘의 경우 1차적으로 전체 데이터에 대해서 최상위 후보군으로 필터 처리를 하고, 최상위 후보군만을 대상으로 1vs1을 수행하여 상대적으로 훨씬 빠른 속도로 같은 대상에 대한 매칭을 수행하나 1vs1매칭이 누락되는 경우가 발생할 수 있다. In the case of the existing 1vs1 matching algorithm, the accuracy is very high, but there is a disadvantage in that it takes a lot of time. In the case of the 1vsN matching algorithm, firstly, the entire data is filtered with the highest candidate group, and 1vs1 is performed for only the highest candidate group to perform matching for the same target at a relatively high speed. can happen

1vsN 매칭 알고리즘으로 처리하는 경우 한건의 검색 요구 특징점과 다수의 매칭 대상 특징점의 인덱스(지문 특징점 내부의 상관관계를 인덱스로 생성한 정보)를 기준으로 우선적으로 최상위 후보군을 만들고 다음으로 그 최상위 후보군만을 대상으로 1대1 비교를 수행하는 식으로 처리한다. 이렇게 처리하게 되면 실제 시간이 많이 드는 작업인 1대1의 비교를 줄일 수 있어 훨씬 빠른 속도로 매칭작업을 수행할 수 있다. 이에 대한 검증으로, 멀티 쓰레드 혹은 멀티 프로세스 처리에 있어 본 발명의 매칭 알고리즘을 대상으로 테스트를 수행한 결과 멀티 쓰레드나 멀티 프로세스를 활용하는 경우 매칭이 더 빠르게 진행되는 것을 확인하였다. 일반적인 경우 테스트 컴퓨터의 CPU의 코어개수만큼 멀티 쓰레드나 멀티 프로세스를 만드는 것이 바람직하다.In the case of processing with the 1vsN matching algorithm, the highest candidate group is first created based on the index of one search request feature point and a plurality of matching target feature points (information generated by indexing the correlation inside the fingerprint feature point), and then only the top candidate group is targeted to perform a one-to-one comparison. In this way, it is possible to perform the matching operation at a much faster speed by reducing the time-consuming one-to-one comparison. As a verification of this, as a result of testing the matching algorithm of the present invention in multi-thread or multi-process processing, it was confirmed that matching proceeds faster when multi-thread or multi-process is used. In general, it is desirable to create multi-threads or multi-processes as many as the number of CPU cores of the test computer.

본 발명의 시스템과 종래의 AFIS 시스템의 매칭속도를 비교한 결과는 표 1과 같다.The results of comparing the matching speed of the system of the present invention and the conventional AFIS system are shown in Table 1.

Figure pat00001
Figure pat00001

여기서, AFIS 형식은 DB에서 데이터를 페치한 다음 1vs1 알고리즘에 의해 매칭을 수행한 결과이고, 본 발명의 형식은 이미 페치하여 메모리에 올려둔 데이터를 기반으로 1vsN 알고리즘에 의해 매칭을 수행한 결과이다. Here, the AFIS format is the result of matching data by 1vs1 algorithm after fetching data from the DB, and the format of the present invention is the result of matching by 1vsN algorithm based on data already fetched and loaded into memory.

비교 결과 AFIS와 같은 방식으로 지문 검색 작업을 수행하는데 있어 비해 약 800배 가량 빠르게 지문 검색 작업이 처리되었음을 확인할 수 있다. 하나의 MPU서버가 대략 1000만건 정도의 지문을 다룬다고 가정했을 때도 계산상으로는 대략 12.5초 정도에 결과를 낼 수 있다. 다른 여러 가지 부가적인 시간을 잡아먹는 요소를 가정해도 목표로 했던 60초 이내로 결과를 낼 수 있으며, 더 빠른 속도가 필요한 경우 알고리즘의 파라미터 조정이나 튜닝을 통해서 좀 더 개선도 가능한 상황이다. 다만 이런 형태로 처리하는 경우 검색 대상 지문 데이터들이 실제 메모리에 올려져 처리되기 때문에 MPU가 동작하는 기기의 물리적인 메모리 총량 이상의 지문 데이터들을 한 기기에서 처리하지 못하는 단점이 있다.(5KiB 지문 특징점 기준 1000만건에 약 40.55GiB) 하지만 충분한 메모리가 확보되거나 혹은 충분히 많은 숫자의 분산 환경이 구축되면 상당한 속도로 지문 검색을 처리하는 것을 기대할 수 있다.As a result of the comparison, it can be confirmed that the fingerprint search task was processed about 800 times faster compared to performing the fingerprint search task in the same way as AFIS. Even assuming that one MPU server handles approximately 10 million fingerprints, the result can be calculated in approximately 12.5 seconds. Even assuming various other additional time-consuming factors, the result can be produced within the targeted 60 seconds, and if a faster speed is required, further improvement is possible through parameter adjustment or tuning of the algorithm. However, in case of processing in this form, there is a disadvantage that one device cannot process more than the total amount of physical memory of the device in which the MPU operates because the fingerprint data to be searched is loaded into the actual memory and processed. About 40.55 GiB per case) However, if sufficient memory is secured or a distributed environment with a sufficiently large number is established, it can be expected to process fingerprint search at a considerable speed.

<MCU 구성><MCU Configuration>

MCU는 MCU 전체의 업무를 처리하는 JobManager, MatchingThread, ResultSet 등의 주요 Object의 초기화와 접근을 담당하는 Global을 기본으로 하여, Main은 전체의 초기화에 서버에서의 네트워크 처리를 담당하고, Main에서 받은 요청을 처리하는 JobManager가 존재한다. JobManager는 받은 요청에 대해 JobThread를 생성하여 특징점 추가, 제거, 갱신 업무의 처리와 매칭 결과 처리를 수행하며 이 수행에 있어 MpuClient를 호출하여 MPU로 해당 요청 사항을 처리한다. MatchingThread는 신규 매칭 작업이 존재하는지 주기적으로 확인하다 신규 작업이 존재하면 MpuResulSet을 생성하여 MPU에서 받을 결과를 미리 준비하고 MPU로 매칭 요청을 전달한다. MPU에서 매칭 결과를 전달하면 JobThread에서 MpuResultSet에 결과를 기록하고, 모든 MPU로부터 결과가 도착하면 그 결과를 소팅 처리한 다음 Dao를 이용하여 매칭 결과를 DB에 결과를 기록한다.MCU is based on Global that is in charge of initializing and accessing major objects such as JobManager, MatchingThread, and ResultSet that handle overall MCU tasks. There is a JobManager that handles JobManager creates JobThread for the received request and performs processing of feature point addition, removal, update and matching result processing. MatchingThread periodically checks whether there is a new matching job. If there is a new matching job, MpuResulSet is created to prepare the result to be received from the MPU in advance and transfers the matching request to the MPU. When MPU delivers matching results, JobThread records the results in MpuResultSet, and when results arrive from all MPUs, the results are sorted and then records matching results in DB using Dao.

< MPU 구성>< MPU configuration >

MPU는 MPU 전체의 업무를 처리하는 JobManager, MatchingThread, 등의 주요 Object의 초기화와 접근을 담당하는 Global을 기본으로 하여, Main은 전체의 초기화에 서버에서의 네트워크 처리를 담당하고, Main에서 받은 요청을 처리하는 JobManager가 존재한다. JobManager는 받은 요청에 대해 JobThread를 생성하여 특징점 추가, 제거, 갱신 업무의 처리와 매칭 요청에 대해서 MtxQueue에 매칭 데이터를 등록하여 MatchingThread가 매칭을 처리하도록 한다. MpuDataSet은 모든 대상 지문 데이터를 메모리에 담는 구조로 1vsN(다수) 매칭 시에 메모리 복사 등의 작업으로 추가 메모리를 사용하지 않고, 매칭 알고리즘에 전달하는 속도 등에 최적화 시키기 위하여 하부에 메모리를 통으로 관리하는 MpuDataUnit을 두어 매칭에 성능을 최적화 시켰다. 특정 매칭 작업이 종료되면 McuClient를 이용하여 MCU에 그 해당하는 결과를 등록한다.The MPU is based on Global, which is in charge of initialization and access to major objects such as JobManager, MatchingThread, etc., which handles the entire MPU business. There is a JobManager that handles it. JobManager creates JobThread for the received request and registers matching data in MtxQueue for processing of feature point addition, removal, and update tasks and matching request so that MatchingThread handles matching. MpuDataSet has a structure that stores all target fingerprint data in memory, and MpuDataUnit manages through memory at the bottom in order to optimize the transfer speed to the matching algorithm without using additional memory due to tasks such as memory copying during 1vsN (multiple) matching. to optimize performance for matching. When a specific matching task is completed, the corresponding result is registered in the MCU using McuClient.

본 발명의 지문 고속매칭 시스템에서, 매칭 시스템 특징점 직접 관리의 경우 매칭 알고리즘에서 처리하는 단위로 특징점 데이터를 묶어서 처리하고, 그 위치를 Key/Value 형태로 처리하는 메모리 관리자를 만들고 그 메모리 관리자에 기본적인 데이터를 적재한 다음 지문 데이터를 읽어서 처리하는 방식으로 구성된다. In the fingerprint high-speed matching system of the present invention, in the case of direct management of keypoints in the matching system, the keypoint data is bundled and processed in units processed by the matching algorithm, and a memory manager is created that processes the location in the form of Key/Value, and basic data is stored in the memory manager. is loaded, and then the fingerprint data is read and processed.

각 Fetch 방법에서 테스트한 결과 DB Fetch에서 얻어오는 일반적인 방법은 채택하기 힘들 정도로 느렸고, 파일 혹은 인메모리스토어를 이용한 방법도 상대적으로 DB에 비해 빠르나 충분한 속도를 내기 힘들었기 때문에, 본 발명의 매칭시스템에서는 기본적으로 직접 메모리 관리자를 만들고 그 메모리 관리자에 직접적으로 특징점 데이터를 관리하는 것으로 하였다.As a result of testing for each fetch method, the general method obtained from DB fetch was too slow to adopt, and the method using a file or in-memory store was relatively fast compared to DB, but it was difficult to achieve sufficient speed. Therefore, the matching system of the present invention In , basically, a direct memory manager is created and feature point data is directly managed in the memory manager.

본 발명에서, 1vsN 매칭 알고리즘으로 처리하는 경우, 한건의 검색 요구 특징점과 다수의 매칭 대상 특징점의 인덱스(지문 특징점 내부의 상관관계를 인덱스로 생성한 정보)를 기준으로 우선적으로 최상위 후보군을 만들고, 다음으로 그 최상위 후보군만을 대상으로 1대1 비교를 수행하는 식으로 처리하였다.In the present invention, in the case of processing by the 1vsN matching algorithm, the highest candidate group is first created based on the index of one search request feature point and a plurality of matching target feature points (information generated by indexing the correlation inside the fingerprint feature point), and then As a result, a one-to-one comparison was performed targeting only the top candidates.

멀티 쓰레드 혹은 멀티 프로세스 처리에 있어 본 발명의 매칭 알고리즘을 대상으로 테스트를 수행한 결과 멀티 쓰레드나 멀티 프로세스를 활용하는 경우 매칭이 더 빠르게 진행되는 것을 확인하였으며, 각 조건에서 테스트한 결과 1vsN 알고리즘과 멀티쓰레드를 이용하여 매칭을 수행하는 것이 최적임을 확인하였다.As a result of testing the matching algorithm of the present invention in multi-thread or multi-process processing, it was confirmed that matching proceeded faster when using multi-thread or multi-process. It was confirmed that performing matching using threads is optimal.

본 발명에서, MCU는 MCU 전체의 업무를 처리하는 JobManager, MatchingThread, ResultSet 등의 주요 Object의 초기화와 접근을 담당하는 Global을 기본 담당하고, MPU는 MPU 전체의 업무를 처리하는 JobManager, MatchingThread, 등의 주요 Object의 초기화와 접근을 담당하는 Global을 기본으로 하여, Main은 전체의 초기화에 서버에서의 네트워크 처리를 담당한다. 또한, MCU와 MPU는 여러 언어를 사용해서 유지보수 등에서 복잡한 부분이 있기 때문에 전체적으로 필요없는 부분들을 걷어내고 유지보수가 편하도록 간략화하여 C++로 기능을 통합한 다음 Socket 서버 형태로 개발될 수 있다.In the present invention, the MCU is basically in charge of global handling the initialization and access of major objects such as JobManager, MatchingThread, and ResultSet, which handle the entire task of the MCU, and the MPU is responsible for the JobManager, MatchingThread, etc. Based on Global, which is in charge of initialization and access of main objects, Main is in charge of network processing in the server for initialization of the whole. In addition, because MCU and MPU use multiple languages and have complex parts in maintenance, etc., they can be developed in the form of a socket server after removing unnecessary parts as a whole, simplifying them for convenient maintenance, integrating functions into C++, and so on.

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 아래에 기재된 특허청구범위에 의해서만 파악되어야 하고, 이의 균등 또는 등가적 변형 모두는 본 발명 사상의 범주에 속한다고 할 것이다.As described above, although the present invention has been described by the limited embodiments and drawings, the present invention is not limited to the above embodiments, and those skilled in the art in the field to which the present invention belongs can make various modifications and transformation is possible Therefore, the spirit of the present invention should be grasped only by the claims described below, and all equivalent or equivalent modifications thereof will be said to belong to the scope of the spirit of the present invention.

10: 신원확인 검출 장치 20: 웹서버
50: 어플리케이션 서비스부 51: API 서버
52: 어플리케이션 DB 53: 매칭 서버부
110: MCU 120: MPU
10: identification detection device 20: web server
50: application service unit 51: API server
52: application DB 53: matching server unit
110: MCU 120: MPU

Claims (6)

경찰, 출입국, 군인, 금융, 의료, 사회복지 중의 하나의 업무와 관련하여 신원확인을 하기 위한 단말기인, 신원확인 검출 장치로부터 웹 서버로, 입력 지문과 함께 신원 확인 요청이 입력되면, 웹 서버는 입력 지문을 포함하는 매칭 요청 정보를 API(application programming interface) 서버로 전송하며, API 서버에 의해 어매칭 DB에 매칭 요청 정보가 등록되는, 매칭 요청신호 등록 단계;
매칭 요청신호 등록 단계 후, MCU(Matching Control Unit)는 매칭 DB에 등록된 매칭 요청 정보를 읽어들이고, 읽어들인 매칭 요청에 대한 결과 데이터 셋을 생성한 후, 복수의 MPU(Matching Processing Unit)에게 매칭 요청 정보를 전송하는, MPU로의 매칭 요청단계;
MPU는 받은 매칭 요청 정보를 기반으로 요청 특징점 정보와 대상 특징점 정보의 묶음을 매칭 큐(Matching Queue)에 기록하고, 매칭 쓰레드는 매칭 큐에 올라오는 해당 매칭 정보들을 얻어서 매칭을 진행하고 결과를 기록하는, 매칭 단계;
매칭 단계에서 매칭 요청에 대한 처리가 완료되면, MPU는 매칭 결과를 취합하고 점수가 높은 순으로 결과를 정렬하고, 상위로부터, 기 설정된 후보자 건수만큼의 결과를, MPU별 후보자 목록으로서, MCU로 전송하는, MPU별 후보자 목록 선정단계;
를 포함하는 것을 특징으로 하는, 지문 매칭 시스템 구동방법.
When an identity verification request is input along with an input fingerprint from an identity detection device, which is a terminal for identity verification in relation to one of the police, immigration, military, finance, medical, and social welfare tasks, to the web server, the web server a matching request signal registration step of transmitting matching request information including the input fingerprint to an application programming interface (API) server, and registering the matching request information in a matching DB by the API server;
After the matching request signal registration step, the MCU (Matching Control Unit) reads the matching request information registered in the matching DB, creates a result data set for the read matching request, and performs matching on multiple MPUs (Matching Processing Units) Sending the request information, matching request step to the MPU;
Based on the received matching request information, the MPU records a bundle of requested feature point information and target feature point information in a matching queue, and the matching thread obtains the corresponding matching information from the matching queue to proceed with matching and record the result. , matching step;
When the processing of the matching request is completed in the matching step, the MPU collects the matching results, sorts the results in the order of highest score, and transmits the results as many as the preset number of candidates from the top to the MCU as a candidate list for each MPU. To, MPU-specific candidate list selection step;
Characterized in that it comprises a, fingerprint matching system driving method.
제1항에 있어서,
MCU는 MPU별 후보자 목록 선정단계에서 생성된 매칭 결과인 MPU별 후보자 목록을 MPU로부터 수신하여, 매칭 결과 데이터 셋에 기록하고, 매칭 결과 데이터 셋에 모든 MPU로부터의 MPU별 매칭 결과를 수신하면, 수신된 모든 MPU별 매칭 결과를 정렬하여 후보자 목록을 생성하고, 매칭 DB에 기록하는, 최종 후보자 목록 선정단계;
를 더 포함하는 것을 특징으로 하는, 지문 매칭 시스템 구동방법.
According to claim 1,
The MCU receives the candidate list by MPU, which is the matching result generated in the candidate list selection step by MPU, from the MPU, records it in the matching result data set, and receives matching results by MPU from all MPUs in the matching result data set. A final candidate list selection step of generating a candidate list by sorting the matching results by all MPUs and recording them in a matching DB;
Characterized in that it further comprises a, fingerprint matching system driving method.
제2항에 있어서,
웹서버가 매칭 DB로 매칭 결과를 요청하고, 최종 후보자 목록 선정단계에서 선정된 후보자 목록을 조회하고, 선정된 후보자 목록을 신원확인 검출 장치로 전송하는, 선정된 후보자 목록 전송단계;
를 더 포함하는 것을 특징으로 하는, 지문 매칭 시스템 구동방법.
According to claim 2,
a selected candidate list transmission step in which the web server requests a matching result from a matching DB, searches the selected candidate list in the final candidate list selection step, and transmits the selected candidate list to an identification detection device;
Characterized in that it further comprises a, fingerprint matching system driving method.
제3항에 있어서,
MCU는 네트워크의 처리를 담당하는 네트워크 매니저(Network Manager)와, 받은 요청사항을 처리하는 잡 매니저(Job Manager)와, 신규 지문 검색 요청이 있는지 확인하고 MPU들에게 매칭 요청을 보내는 리퀘스트 매니저(Request Manager)와, 결과 데이터를 취합하고 모든 결과를 받았을 때 DB(데이터베이스)에 결과를 기록하는 리절트 세트(Result Set)와 DB(데이터베이스) 처리를 담당하는 매칭(Matching) DAO(Data Access Object), MPU들에게 요청을 전송하는 MPU 클라이언트(Client)를 포함하는 것을 특징으로 하는, 지문 매칭 시스템 구동방법.
According to claim 3,
The MCU includes a network manager in charge of network processing, a job manager that processes received requests, and a request manager that checks whether there is a new fingerprint search request and sends a matching request to MPUs. ), Result Set that collects result data and records results in DB (Database) when all results are received, Matching DAO (Data Access Object), and MPU that are in charge of DB (Database) processing Characterized in that it comprises an MPU client (Client) for sending a request to the, fingerprint matching system driving method.
제3항에 있어서,
MPU는 네트워크의 처리를 담당하는 네트워크 매니저(Network Manager), 받은 요청사항을 처리하는 잡 매니저(Job Manager), 매칭 작업을 쓰레드 형태로 진행하는 매칭 쓰레드(Matching Thread), 전체 대상 지문 데이터를 관리하는 매칭 데이터 세트(Matching Data Set), MCU에게 결과를 전송하는 MCU 클라이언트(Client)를 포함하는 것을 특징으로 하는, 지문 매칭 시스템 구동방법.
According to claim 3,
The MPU consists of a Network Manager that handles network processing, a Job Manager that handles received requests, a Matching Thread that performs matching tasks in the form of threads, and that manages all target fingerprint data. A method for driving a fingerprint matching system, characterized by comprising a matching data set and an MCU client that transmits a result to an MCU.
제3항에 있어서,
매칭 단계의 매칭 시스템 특징점 직접 관리에 있어서, MPU는 1vsN 매칭 알고리즘에서 처리하는 단위로 특징점 데이터를 묶어서 처리하고, 위치를 Key/Value 형태로 처리하는 메모리 관리자를 만들고, 메모리 관리자에 기본적인 데이터를 적재한 다음 지문 데이터를 읽어서 처리하는 것을 특징으로 하는, 지문 매칭 시스템 구동방법.
According to claim 3,
In the direct management of matching system feature points in the matching step, the MPU bundles and processes feature point data in units processed by the 1vsN matching algorithm, creates a memory manager that processes locations in the form of Key/Value, and loads basic data into the memory manager. A method for driving a fingerprint matching system, characterized in that the next fingerprint data is read and processed.
KR1020210112089A 2021-08-25 2021-08-25 Driving method of fingerprint high speed matching system applicable to distributed environment KR20230030179A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210112089A KR20230030179A (en) 2021-08-25 2021-08-25 Driving method of fingerprint high speed matching system applicable to distributed environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210112089A KR20230030179A (en) 2021-08-25 2021-08-25 Driving method of fingerprint high speed matching system applicable to distributed environment

Publications (1)

Publication Number Publication Date
KR20230030179A true KR20230030179A (en) 2023-03-06

Family

ID=85509744

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210112089A KR20230030179A (en) 2021-08-25 2021-08-25 Driving method of fingerprint high speed matching system applicable to distributed environment

Country Status (1)

Country Link
KR (1) KR20230030179A (en)

Similar Documents

Publication Publication Date Title
US10877974B2 (en) Statistical identification of instances during reconciliation process
US8218828B2 (en) Systems and methods for biometric information automation
US10713589B1 (en) Consistent sort-based record-level shuffling of machine learning data
US20200057958A1 (en) Identification and application of hyperparameters for machine learning
US8868595B2 (en) Enhanced control to users to populate a cache in a database system
US20040139078A1 (en) Database processing method and apparatus using handle
US20060026043A1 (en) Medical records system and method
US8959062B2 (en) Data storage device with duplicate elimination function and control device for creating search index for the data storage device
US9619635B2 (en) Biometric authentication apparatus and method
CN112527843B (en) Data query method, device, terminal equipment and storage medium
JP2008310634A (en) Database search device and database search program
US20070143660A1 (en) System and method for indexing image-based information
KR20230030179A (en) Driving method of fingerprint high speed matching system applicable to distributed environment
CN101539926A (en) Relative document presenting system, relative document presenting method, and computer readable medium
KR20230030181A (en) Fingerprint High Speed Matching System for Mass Fingerprint Identification
KR20130126012A (en) Method and apparatusfor providing report of business intelligence
KR20210108730A (en) Driving method of fingerprint high speed matching system applicable to distributed environment
KR20210108720A (en) Fingerprint High Speed Matching System for Mass Fingerprint Identification
US10089308B1 (en) Method for using redundant data elimination to accelerate storage system scanning
CN111611251B (en) Data processing system
US20200301922A1 (en) Multiform persistence abstraction
CN110909029A (en) Method and medium for realizing cache based on Nosql
CN109165208A (en) It is a kind of for loading data into the method and system in database
JPH09114784A (en) Access right evaluation device
US20220382660A1 (en) Method and computing device for generating action history data of application and computer-readable non-transitory recording medium