DOI QR코드

DOI QR Code

실시간 지문식별을 위한 하드웨어 구현

A Hardware Implementation for Real-Time Fingerprint Identification

  • 발행 : 2004.12.01

초록

지문 식별은 데이터베이스에 사용자의 지문 정보를 저장하는 사용자 등록 과정과 입력된 사용자의 지문 정보에 대하여 유사한 후보자 목록을 작성하는 식별 과정으로 구성된다. 그러나 대규모 데이터베이스에 저장된 사용자 지문 정보를 전체적으로 순차 검색할 경우 오랜 수행 시간이 요구된다는 문제가 있다. 이러한 문제점을 해결하기 위하여 본 논문에서는 실시간으로 지문을 식별하기 위한 지문 식별 전용 하드웨어를 설계하였다. 설계된 지문 식별 전용 하드웨어는 PCI 보드에 대용량 FPGA와 SDRAM을 실장하여 지문 검색을 병렬로 처리한다. 설계된 하드웨어에 대한 성능평가 결과, 등록자 수 증가에 따른 높은 확장성을 보이며 지문 식별을 실시간에 처리할 수 있음을 확인하였다.

Fingerprint identification consists of user enrollment phase storing user's fingerprint in a database and user identification phase making a candidate list for a given fingerprint. straightforward approach to perform the user identification phase is to scan the entire database sequentially, and takes times for large-scale databases. In this paper, we develop a hardware design which can perform the user identification phase in real-time. Our design employs parallel processing techniques and has been implemented on a PCI-based platform containing an FPGA and SDRAMs. Based on the performance evaluation, our hardware implementation can provide a scalability and perform the fingerprint identification in real-time.

키워드

I. 서론

생체인식은 사용자가 소지하거나 암기할 필요가 없는 편리성 및 반드시 본인이 있어야 인식되는 높은 신뢰성 때문에 사용자 패스워드 또는 PIN(Personal Identification Number), 그리고 신용카드 등-을 보완할 수 있는 새로운 보안수단이다.[1.2]

생체인식이란 개인의 생체적 혹은 행동적인 특성을 이용하여 개인을 인식하는 기술이다. 생체 특징을 이용한 기술로는 지문, 얼굴, 홍채, 망막 및 정맥 인식 등이 있으며, 행동 특징을 이용한 기술로는 서명 및 음성 인식 등이 대표적이다. 생체인식 기술은 수년 간 도어록 등 출입통제 시스템과 관련된 물리적 보안에 적용되어 왔지만, 앞으로는 인터넷 뱅킹, 전자상 거래, 원격 교육, 그리고 정보보호 등 컴퓨터 보안에의 적용 비율이 높아질 것이다. 이에 따라 네트워크를 지원하는 생체인식 기술을 이용한 개인 인증 방법은 공개키기반구조(PKI: Public Key Infrastructure)의 전자서명인증기술과 함께 중요한 개인인증 수단으로 자리잡게 될 전망이다.

생 체 정보들 중에서 지문은 오랜 연구를 통해 신뢰성이 입증되었을 뿐만 아니라 사용의 편리함, 구현 장비의 저가, 소형화에 가장 부합하는 생체 특징으로 평가 받고 있다[3]. 이와 같은 이유 때문에 지문은 생체인식에서 가장 널리 사용되고 있는 생체 정보이다.

지문의 이용 방법으로는 1:1 지문 인증(verification) 과 1 :N 지문 식별(identification)로 구분된다[3,4]. 1:1 지문 인증은 본인 확인 과정으로 입력된 사용자 지문이 저장된 지문과 동일한 지문인지를 판단한다. 1:N 지문 식별은 데이터베이스에 N명의 사용자 지문 정보를 저장한 후, 데이터베이스에서 검색과정을 통하여 입력된 사용자 지문정보와 유사한 후보자 목록을 결과로 보여준다. 지문 인증과 지문 식별은 특징 추출(feature extraction) 단계와 지문 정합(fingerprint matching) 단계로 구성된다. 특징 추출 단계는 지문인증과 지문 식별에서의 계산량 차이가 크게 없으나, 지문 정합의 경우 지문 식별은 1:N 정합을 수행해야 하므로 1:1 정합을 수행하는 지문 인증에 비하여 매우 큰 계산량을 요구한다. 특히 본 논문에서 고려하는 1:N 지문 식별의 경우, 출입국관리 등과 같이 수 백만~수 천만 규모의 대국민 응용에 적용하기 위해서는 매우 효과적인 지문 검색 방법이 필요하다. 데이터베이스에 저장된 지문 데이터 전체를 순차적으로 검색하는 방법으로는, 비록 그 과정을 하드웨어로 처리한다고 하여도 등록자 수에 비례하여 수행 시간이 선형적으로 증가한다는 문제가 있다[5,6]. 이와 같은 문제점을 해결하기 위하여본 논문에서는 기하학적 해싱을 이용하여 지문 검색을 실시간에 수행하는 전용 하드웨어의 사용을 제안한다.

기하학적 해싱[7,8]은 모델 기반 객체인식 기법으로, 각각의 모델에 대하여 "기준점 집합(basis set)"이라는 특징점의 모든 쌍을 구한 후 이들 (모델, 기준점) 엔트리를 해쉬 테이블에 저장하는 전처리 과정과, 주어진 입력 이미지에서 추출된 특징점들의 각 기준점에 대한 상대적인 좌표를 계산하는 해쉬 함수에 의하여 객체를 인식하는 과정으로 구성된다. 특히, 모델 데이터베이스를 해쉬 테이블로 구성하는 전처리 과정에 시간이 소요되지만 해쉬 테이블 구성은 한번만 오프라인으로 수행되고 인식 과정이 데이터베이스의 크기에 독립적으로 신속히 수행될 수 있어, 전국민 대상의 지문 식별이나 바이오인포메틱스와 같은 대규모 데이터베이스를 검색하는 기법으로 활용될 수 있다는 장점이 있다. 그러나 이러한 기하학적 해싱을 병렬처리하는 기존의 방법들은, 범용 병렬컴퓨터에 상대적으로 적은 계산을 병렬처리하면서 발생하는 오버헤드[9] 또는 하나의 FPGA 칩에서만 처리 가능하여[10] 본 논문에서 고려하는 대규모 지문 응용에 필요한 확장성이 부족하다는 문제가 있다.

본 논문에서는 보드 수준에서 병렬성을 제공하여 기하학적 해싱 문제에 적합한 입도(granularity) 를 제공하며, 보드의 수를 증가시킴으로써 확장성을 제공할 수 있는 구조를 제안한다. 제안된 지문 식별 전용 하드웨어는 PCI 보드에 대용량 FPGA와 SDRM을 사용하여 구현되었으며, 지문검색을 병렬로 처리하여 실시간 지문 검색을 가능하게 하였다. 또한, 등록자 수가 증가함에 따라 PCI 보드의 수를 늘려 지문 검색 성능을 증가시키는 우수한 확장성을 가지고 있다.

본 논문의 구성은 다음과 같다. 제 2장에서는 본 논문에서 사용하는 지문 식별 과정을 설명하고, 제 3 장에서는 2 장에서의 지문 식별 과정을 수행하는 지문 식별 시스템의 구현에 대하여 설명한다. 제 4 장에서는 본 논문에서 제안한 지문 식별 시스템에 대한 실험과 성능을 보인다. 마지막으로 5장에서 본 논문의 결론을 내린다.

Ⅱ. 지문식별 과정(Fingerprint Identification Process)

지문 식별 과정 (Fingerprint Identification Process)은 그림 2.1과 같이 등록 과정(Enrollment Process)과 식별 과정 (Identification Process)으로 구분된다. 등록 과정은 등록 사용자의 지문 영상으로부터 추출된 정보를 지문 데이터베이스(fingerprint database)에 저장하는 과정을, 식별 과정은 지문 데이터베이스에서 식별사용자와 유사한 후보자 목록을 생성하는 과정을 의미한다.

그림 2.1. 지문 식별 과정

2.1 등록 과정(Emollment Process)

등록 과정의 개요를 설명하면 다음과 같다. 먼저 등록을 요구하는 사용자 지문의 특징점 정보를 획득하고 특징 점의 기하학적 인 특성을 고려하여 테이블을 생성하며, 이를 등록 테이블(enrollment table)이라 한다. 생성된 등록 테이블을 지문 데이터베이스(fingerprint database)에 추가 저장한다.

그림 2.2(a)는 등록 과정의 흐름도를 나타내며, 특징점 정보 획득 단계(minutiae information acquisition stage), 테이블 생성 단계(table generation stage), 그리고 지문 데이터베이스 갱신 단계 (fingeiwint database update stage)로 수행된다.

그림 2.2. 지문 식별 과정의 흐름도

2.1.1 특징점 정보 획득 단계

특징점 정보 획득 단계는 등록 사용자(enrollee) 의 지문 영상으로부터 주줄된 특징점들을 획득하는 단계이다. 특징점은 특징점의 우]치, 각도, 그리고 종류로 나타내진다. 등록 사용자의 특징점의 수가 "개일 때 i번째 특징점을 다음과 같이 M로 표현하기로 한다.

#

특징점의 위치는 영상 평면으로부터의 좌표 값이고, 방향은 특징점이 향하는 방향의 각도, 종류는 그림 2.3과 같이 끝점과 분기점에 해당한다. 등록 사용자는 특징점들의 집합으로 나타내지며 E로 표현하기로 한다.

#

그림 2.3. 끝점과 분기점

그림 2.4는 등록 사용자를 특징점들의 집합으로 나타낸 예이다.

그림 2.4. 등록된 사용자의 특징점들

2.1.2 테이블 생성 단계

지문 영상은 동일한 위치에 존재하지 않고 획득될 때마다 일정한 방향으로 이동 및 회전되어 있거나 크기가 변화되어 단순비교가 불가능하다. 따라서, 데이터베이스에 저장된 각각의 등록 지문과 식별하고자 하는 지문 사이의 유사도를 측정하는 정합 과정에서 두 지문의 좌표계를 맞추는 정렬 (alignment) 단계는 필수적이다. 두 비교 지문의 정렬 단계에서 많은 수행시간이 요구되므로, 본 논문에서는 식별 과정의 1:N 정합 단계시 정렬 단계 없이 단순 비교 연산만으로 정합 과정을 처리하기 위하여 정렬 단계를 수행한 결과가 포함된 테이블을 이용한다. 테이블 생성 단계는 입력된 특징점을 이용하여 등록 테이블을 생성하는 단계이다. 그림 2.5는 테이블 생성 단계의 흐름도를 나타낸다. 각 단계별로 설명하면 다음과 같다.

그림 2.5. 테이블 생성 단계의 흐름도

1) 기준점 선정 단계

등록 사용자의 특징점들의 집합 {Mi|0≤i≤n—1}에서 특징점 M0를 기준점으로 선정한다.

2) 특징점 변환 단계

특징점 변환 단계는 선정된 특징점M0를 제외한 다른 특징점M1, M2…, M0-1에 대하여 M0와 좌표계를 정렬하고 양자화를 수행한 변환 특징점을 구하는 과정이다. M0를 기준으로 변환된 i번째 특징점을 Mi0로 나타낸다. M0를 기준으로 변환된 특징점인 Mi0, 0≤i≤n—1,의 집합을 M0-변환 특정점 집합(M0-Transformed Minutiae Set)이라 정의 하고 아래와 같이 T0으로 나타낸다.

#

(식 1)은 선정된 기준점 M0의 (#) 값이(0, 0, 0, t0)로 변환되도록 모든 특징점들에 대하여 이동 맟 회전 변환을 수행한다. TRMi0는 M0를 기준으로 이동 및 회전 변환을 수행한 6번째 특징점을 나타낸다. 그림 2.6(a)는 그림 2.4의 특징점들에 대하여 M0를 기준점으로 선정하고 이동 변환을 수행한 결과이며, 그림 2.6(b)는 회전 변환까지 수행하여 구한 TRM10, TRM20, TRM30, TRM40, TRM50, TRM60, 를 나타낸 예이다.

#(식 1)

그림 2.6. 이동 및 회전 변환

위와 같이 이동 및 회전 변환을 수행한 특징점들에 대하여, 선정된 기준점을 제외한 그 외의 특징점들을 테이블에 저장한다. 테이블에 저장되는 정보의 양을 줄이기 위하여 이동 및 회전 변환된 특징점의 위치와 각도 정보에 대해서는 양자화를 수행한다. 위치에 대한 양자화 계수를 a라 하고, 각도에 대한 양자화 계수는 b로 표시한다. a 는 특징점 획득 단계의 특징점 위치 값의 범위에 의해서 결정된다. b는 식별 과정의 정합 단계에서 요구되는 정확도에 따라서 결정된다. (식 2)에 이동 및 회전 변환된 특징점에 양자화를 수행하는 과정이 나타나 있다. (식 2)에 표현된 M0-변환 특징점 Mi0들이모여서 M0-변환 특징점 집합 T0가 된다.

#(식 2)

3) 반복 단계

위의 기준점 선정 단계와 특징점 변환 단계는 특징점 M0에 대하여 수행한 것이며, 동일한 과정을 M1,…, Mn-1의 모든 특징점들에 대해서 반복 수행한다. 이러한 과정을 통하여 얻어진 Mi - 변환 특징점 집합인 Ti ≤ i ≤ n-1가 모여서 등록 사용자의 등록 테이블을 만든다.

2.1.3 지문 데이터베이스 갱신 단계

지문 데이터베이스 갱신 단계는 등록 사용자에 대하여 구한 등록 테이블을 지문 데이터베이스에 추가 저장하는 단계이다. 그-림 2.7은 L명의 등록사용자에 대한 등록 테이블을 저장한 지문 데이터베이스이다. 각 사용자의 등록 테이블은 ” 개의 변환 특징점 집합(Ti)으로 구성되어있다. 하나의 등록 테이블에 저장되는 변환 특징점의 수는 nx (n — 1)개이며 전체 지문 데이터베이스에 저장되는 변환 특징점의 수는 Lxnx(n-1)개다.

그림 2.7. 지문 데이터베이스

2.2 식별 과정(Identification Process)

식별 과정은 식별을 요구하는 사용자의 특징점들을 획득하고, 획득한 특징점들을 이용하여 식별 테이블을 생성하며 식별 테이블과 지문 데이터베이스에 저장된 등록 테이블을 비교하여 유사한 정도를 측정하는 정합 과정을 수행한 후, 유사한 정도에 따라서 등록 테이블의 후보자 목록을 생성한다.

그림 2.2(b)는 식별 과정의 흐름도를 나타내며, 특징점 정보 획득 단계 (minutiae information acquisition stage), 테이블 생성 단계(table generation stage), 정합 단계(1:N matching stage), 그리고 후보자 목록 생성 단계(candidate list generation stage)를 순차적으로 수행한다. 특징점 정보 획득 단계, 테이블 생성 단계는 등록 과정과 동일한 순서 및 방법으로 수행한다.

식별 사용자 역시 특징점들의 집합으로 나타내진다. 편의상 식별 사용자의 특징점은 Ni로 표현하기로 하고 n개의 특징점을 가지고 있는 식별 사용자는 다음과 같이 I로 표현한다.

#

식별 사용자의 특징점을 이용하여 등록 과정과 동일한 테이블 생성 단계를 수행하면 그림 2.8과 같은 식별 테이블이 생성된다.

그림 2.8. 식별 테이블

정합(1:N) 단계는 변환 특징점 집합 7;를 기본단위로 하여 위치와 각도가 일치하는 특징점 쌍을 구하는 단계이다. 그림 2.9의 N10 N20N30N40N50N60는 N0 특징점을 기준으로 하여 구한 N0-변환 특징점 집합을 나타내며, M10 M20M30M40M50M60은 지문 데이터베이스에 저장된 등록 테이블의 M0특징점을 기준으로 하여 구한 M0-변환 특징점 집합이다. 위치와 방향이 일치하는 특징점 쌍은 (N10 M10), ( N20M20), (N30M30)의 3 쌍이다. 반면, N40N50N60M40M50M60는 어느 다른 특징 점과 도일 치하지 않는 모습을 확인할 수 있다. '

그림 2.9. 1:N 정합의 예

이와 같이 정합 단계의 유사도는 식별 테이블의 변환 특징점 집합과 지문 데이터베이스에 저장된 등록 테이블의 변환 특징점 집합 사이에 일치하는 변환 특징점들의 쌍의 수를 구함으로써 측정이 가능하다. 이는 식별 테이블과 등록 테이블의 변환 특징점 집합들이 기존의 알고리즘들이 정합단계에서 수행하던 이동 및 회전 변환 과정을 이미 수행하여 그 결과를 포함하고 있기 때문이다.

동일한 사용자라도 지문 영상으로부터 추출된 특징점들은 지문 영상의 잡영에 의해서 항상 동일한 특징점의 위치와 각도가 추출되지 않는다. 그러므로 잡영에 의한 문제점을 해결하기 위하여 정합 (1:N) 단계에서 위치 허용 오차 범위와 각도 허용 오차 범위를 준다.

위치 허용 오차 범위는 변환 특징점의 위치에 따라서 가변적으로 준다. 즉, 원점으로부터 변환특징점까지의 거리가 클수록 위치 허용 오차 범위도 크게 준다. 이러한 방법은 A. Jain 등이 사용한 tolerance box와 같은 것이다[5]. 그림 2.10은 변환 특징점의 위치에 따라서 4개의 영역으로 나누어서 위치 허용 오차 범위를 준 예이다. 그림 2.10 에서 1st field〔-3, 3〕이 뜻하는 바는 변환 특징점이 제1영역 (1st field )에 있을 경우에는 X축, y축에 대하여 각각 -3에서 3까지 허용 오차를 준다는 의미이다.

그림 2.10. 위치 허용 오차 범위

각도 허용 오차 범위는 모든 변환 특징점에 대하여 일정하게 준다. 양자화된 각도의 범위가 #이고 각도 허용 오차 범위가〔-1, 1〕 일때 식별 테이블의 변환 특징점 '각도 값이 15인 경우, 14, 15, 0의 값을 갖는 등록 테이블의 변환 특징점의 각도 값은 동일한 값으로 인정한다.

그림 2.9에 대하여 위치 허용 오차 범위와 각도 허용 오차 범위를 적용하여 정합(1:N) 단계를 수행하면, 일치하는특징점 쌍은 (N10 M10), ( N20M20), (N30M30)뿐만 아니라 (N50,  M50), (N60M60)까지 포함하여 5쌍이 된다.

N50의 위치 허용 오차 범위는 제 1영역 〔-3, 3〕이므로, N50의 위치 허용 오차 범위내에 위치하는 N50 는 N50와 동일한 위치의 특징점 쌍으로 간주한다. 그리고 N50의 각도와 M50의 각도가 일치하므로 변환 특징점 N50과 M50는 일치하는 특징점 쌍이 된다.

N60의 위치 허용 오차 범위는 제 3 영역 [-7, 7] 에 해당하며 M50는 N60의 위치 허용 오차 범위내에 위치하므로 동일한 위치의 특징점으로 간주한다. N60의 각도는 15이고 M50의 각도는 0이므로 서로 일치하지 않지만, 각도허용 오차 범위〔-1, 1〕를 적용하면 N60의 각도와M50의 각도는 동일한 각도로 간주한다. 따라서 변환특징점 N60과 M50는 일치하는 특징점 쌍이 된다.

후보자 목록 생성단계는 식별 테이블의 모든 변환 특징점들 집합에 대하여 지문 데이터베이스에 저장된 등록 테이블의 모든 변환 특징점들 집합과 비교하여 유사도를 측정하고 높은 유사도 순으로 후보자 목록을 구한다.

Ⅲ. 지문 식별 시스템 구현

높은 식별율을 유지하면서 실시간으로 처리하는 지문 식별 시스템을 구현하기 우】하여, 지문 식별시스템음 소프트웨어 모듈과 하드웨어 모듈로 구분하여 통합 구현한다. 하드웨어 모듈은 PCI card 형태로 구현되어 보드 단위의 병렬처리를 가능하게 한다.

3.1 시스템 구조 및 동작

지문 식별 시스템은 등록 과정과 식별 과정을 처리하며. 그림 3.1은 등록 과정과 식별 과정의 소프트웨어 노듈과 하드웨어 모듈의 역할 분담을 보여순다.

그림 3.1. 지문 식별 과정의 하드웨어/소프트웨어 구분

등록 과정은 지문 정보 획득 단계, 테이블 생성단계, 그리고 지문 데이터베이스 갱신 단계로 구성되며. 소프트웨어 모듈로만 처리한다. 이는 테이블생성 단계가 많은 연산량을 요구하지 않고, 생성된 등록 테이블을 지문 데이터베이스에 추가 저장할 때 소프트웨어로 처리하는 것이 하드웨어로 처리하는 것보다 비용면에서 효과적이기 때문이다.

식별 과정은 지문 정보 획득 단계, 테이블 생성단계. 정합(1:M) 단계, 후보자 목록 생성 단계로 구성되며, 소프트웨어 모듈과 하드웨어 모듈이 연동하여 식별 과정을 처리한다. 정합(1:\) 단계는 지문 데이터 베이스에 저장된 등록 테이블의 수가 증가할수록 연산량이 많아지므로 하드웨어로 구현하는 것이 바람직하다. 테이블 생성 단계와 후보자 목록 생성 단계는 많은 연산량을 요구하지 않지만, 지문 식별 시스템의 효율성을 높이기 위하여 하드웨어로 구현한다.

지문 식별 시스템은 그림 3.2와 같이 Fingerprint Database, CPU, H/W Accelerators로 구성된다. 지문 데이터 베이스에는 등록 사용자의 정보인 등록 테이블들이 저장되어 있다. CPU는 지문 식별 시스템의 소프트웨어 모듈을 처리하며, 하드웨어 모듈을 처리하는 H/W Accelerators와 연동하여 실시간으로 지문 식별 과정을 처리하게 된다.

그림 3.2. 지문 식별 시스템

H/W Accelerator는 그림 3.3과 같이 PCI controller, FPGA, 그리고 SDRAM으로 구성된다. PCI controller는 PCI 인터페이스를 담당하는 역할을 수행하며, FPGA에는 지문 식별 하드웨어 모듈이 프로그래밍되어 테이블 생성 단계와 정합 단계를 수행한다. SDRAM에는 소프트웨어 모듈에 의해 지문 데이터베이스로부터 다운로드 받은 등록 테이블들이 저장된다. 지문 데이터베이스의 크기가 크거나 지문 식별 속도를 증가시키고자 하는 경우에는 여러 개의 H/W Accelerator를 사용한다. 이 경우 각 H八" Accelerator의 SD-RAM에는 지문 데이터베이스의 등록 테이블들이 나누어져 다운로드 된다.

그림 3.3. 하드웨어 가속기

3.2 지문 식별 H/W 모듈

지문 식별 하드웨어 모듈은 그림 3.4와 같이 Table Generator, Max Ratio Pipe, Candidate List Generator, SDRAM Controller, 그리고 여러가지 버퍼로 구성된다. Table Gene- rator는 테이블 생성 단계를 수행하고, 4개의 Max Ratio Processing Element (PE)로 구성된 Max Ratio Pipe는 정합(1:N) 단계를 수행하며 , Candidate List Generator는 후보자 목록 생성 단계를 수행한다. 버퍼에는 Minutiae Buffer, 4개의 Identification Table Buffer, 그리고 Enrollment Table Buffer로 구성된다. Minutiae Buffer는 식별 사용자의 특징점들을 저장하기 위한 버퍼에 해당하며, 지문 식별 소프트웨어 모듈에 의해서 저장된다. Enrollment Table Buffere Double Buffer로 구성되었으며, 외부메모리인 SDRAM으로부터 읽어온 등록 테이블이 서로 번갈아 가면서 저장되는 공간에 해당한다. Identification Table Buffer는 Table Gener- ator에 의해서 생성된 식별 테이블이 저장되는 공간으로, 식별 테이블은 4개의 Identification Table Buffs에 균등히 분산되어 저장된다. 이는 4개의 Max Ratio PE 가 서로 다른 식별 테이블의 값으로 정합 단계를 병렬로 수행하기 위해서이다. SDRAM Controllei는 SDRAM에 저장된 등록 테이블을 읽어와 Enrollment Table Buffer에 저장하는 역할을 수행한다.

그림 3.4. 지문 식별 하드웨어 모듈

Max Ratio Pipe는 4개의 단계로 되어 있으며, 각 단계는 Max Ratio PE로 되어있다. 그림 3.5는 Max Ratio PE의 구조도이다. Max Ratio PE는 레지스터, 63개의 SCORE PE, Sum Score, Ratio, Max Ratio로 구성된다. 레지스터 에는 Transmit Register와 Shift Register가 있다. Transmit Register는 Max Ration Pipe의 이전 단계에 있는 Max Ratio PE로부터 입력 받은 등록 테이블 주소(En- rollment Table Address)와 둥록 테이블 데이터 (Enrollment Table Data)를 다음 Max Ratio PE로 전송하는 역할을 수행하며, Shift Register는 식별 테이블 데이터(Identification Table Data)를 왼쪽에서 입력 받아 오른쪽으로 전송하여 저장하는 역할을 수행한다. 63개의 SCORE PE가 병렬로 연결되어 있으므로 식별 테이블의 변환 특징점들 집합에 대하여 동시에 등록 테이블의 변환 특징점 하나와 유사도를 측정하여 점수를 발생한다. Sum Score는 63개의Score PE로부터 출력된 점수를 합산하는 블록이고, Ratio는 합산 점수를 비율 값으로 변환하는 블록이며, Max Ratio는 Max Ratio PE에서 구해진 비율 중 최대 비율 값을 구하는 블록이다.

그림 3.5. Max Ratio PE의 구조도

Ⅳ. 실험 및 성능 평가

본 논문에서 제안된 지문 식별 시스템의 성능을 평가하기 위하여 두 장의PCI 보드를 제작하였다. 제작된 PCI 보드에는 400만 게이트급 Xilinx FPGA와 2GB의 SDRAM이 실장되었다. 표 4.1 에 지문 식별 하드웨어를 XC2V4000에서 구현하였을 때 사용된 주요자원이 나타나 있다. PCI 보드와 PCI 버스는 모두 33MHz에서 동작하였다.

표 4.1. Xilinx XC2V4000에서 구현시 사용된 주요 자원

PCI 보드가 탑재된 Host PC의 주요환경은 다음과 같다.

1. Intel Pentium 4 Zeon Dual Processor 1.7GHz

2. RDRAM 1, 024MB

3. Intel i860 Chipset

4. 3×32bit, 2x64bit PCI Slot

5. Linux operating system

본 논문에서는 사용된 FPGA에의 구현이 가능하도록 하드웨어의 크기를 제한하기 위하여 1인당 특징점의 수를 최대 64개로 제한하였다. 따라서 식별자 1인의 특징점이 최대 63개의 특징점에 대하여 변환되므로 식별 테이블에 저장되는 특징점의 수는 최대 64x 63 = 4, 032개가 된다. 등록자가 1, 024명일때 등록 테이블은 약 222개의 변환된 특징점을 가지게된다. 따라서 하나의 식별 테이블과 등록 테이블을 비교하려면 앗" 212 = 234 번의 특징점 간의 비교가 수행되어야 한다.

구현된 하드웨어 기반 지문 식별 시스템의 식별 율을 평가하기 위하여 ETRI 지문 데이터베이스를 이용하였다. ETRI 지문 데이터베이스는 니트젠지문 센서(지문영상의 크기 : 248x 292)를 이용하여 총1, 024명에 대하여 1인당 1개 손가락을 30분 이상의 시간간격을 두고 총 4회 획득하여 구축된 데이터베이스이다. 편의상 4회에 걸쳐 획득된 지문 영상에 대하여 획득된 시간간격에 따라 지문을 A, B, C, D type이라 정의하고 다음과 같이 실험을 진행하였다.

1. 1, 024명의 A-type 지문을 사용하여 데이터베이스를 구성한다.

2. 위 1, 024명에 대한 A-type을 제외한 B, C. D-type의 지문을 데이터베이스에서 검색한다.

이때 특징점의 숫자가 64개 보다 많거나 지문이 누락되어 있으면 실험을 수행하지 않는다.

다음은 데이터베이스를 구성하는 지문을 A- type 대신 B, C, D-type으로 변경하여 위와 동일한 실험을 수행하였다. 각각의 경우에 입력된 지문 데이터와 동일인의 데이터가 유사도 등위로 1~5등 안에 나타난 경우와 1~10등 안에 나타나는 경우의 확률을 구하였4. 위 실험의 결과가 표 4.2에 나타나 있다.

표 4.2. 지문 식별 하드웨어의 식별율

또한, 제안된 지문식별 전용 하드웨어의 수행 시간을 평가하기 위하여 하나의 PCI 보드를 사용한 경우와 두 개의 PCI 보드를 사용한 경우에 소요된 시간을 즉정하였다. 표 4.3에 지문 식별 하드웨어의 평균 수행시간을 나타내었고, 소프트웨어로 구현하여 PC(Pentium4 CPU 2.8GHz, 512MB) 에서 측정한 경우에 비하여 약 15배 정도의 성능개선을 확인할 수 있었다. 또한, PCI보드를 두 개로 확장하면 등록자의 수가 두 배가 되어도 수행 시간이 거의 일정함을 알 수 있다.

표 4.3. 지문 식별 하드웨어의 수행 시간

V. 결론

본 논문에서는 지문 식별을 실시간으로 처리하기 위하여 지문 식별 전용하드웨어의 사용을 제안하였다. 지문 식별은 데이터베이스에 사용자의 지문 정보를 등록한 후, 입력된 사용자 지문에 따라서 유사한 후보 목록을 작성하기 위하여 데이터베이스에 저장된 지문 정보를 전체적으로 검색하게 된다. 이때 데이터베이스에 등록된 사용자의 수에 비례하여 지문 식별 과정을 수행하는데 오랜 시간이 요구된다. 이와 같은 문제점을 해결하기 위하여 PCI 보드에 대용량의 FPGA와 SDRAM을 탑재하여 지문 식별을 병렬로 처리하도록 설계하였다. 설계된 PCI 보드는 1, 024명의 지문 데이터베이스에서 지문 검색을 1초내에 수행하여 실시간 동작이 가능함을 확인하였다. 또한, 등록자수를 두 배로 확장하더라도 보드를 두장 사용하면 지문 검색을 거의 같은 시간에 수행하여 등록자 수 증가에 따른 높은 확장성을 보임을 확인하였다. 마지막으로 제안된 하드웨어 설계가 지문을 제대로 식별하는지를 확인하기 위하여 간단한 실험을 수행한 결과 약 90%의 식별율을 얻을 수 있었고, 향후 식별율을높이기 위한 튜닝이 진행된다면 상용시스템으로도 활용될 수 있을 것으로 기대된다.

참고문헌

  1. A. Jain, R. Bole, and S. Panakanti, Biometrics: Personal Identification in Networked Society, Kluwer Academic Publishers, 1999
  2. S. Pankanti, R. Bolle, and A. Jain, 'Biometrics: The Future of Identification,' IEEE Computer, vol. 33, pp. 46-49, 2000
  3. D. Maltoni, et al., Handbook of Fingerprint Recognition, Springer, 2003
  4. 문대성, 길연희, 안도성, 반성범, 정용화, 정교일, '지문인증을 이용한 보안토큰시스템 구현,' 한국정보보호학회 논문지, 제13권, 4호, pp. 63-70, 2003
  5. N. Ratha and A. Jain, 'A Real-Time Matching System for Large Fingerprint Database,' IEEE Trans on PAMI. vol. 18, pp.799-813, 1996 https://doi.org/10.1109/34.531800
  6. 김기철, 박덕수, 정용화, 반성범, '융선추적을 이용한 지문 특징점 추출기의 SoC 구현,' 한국정보보호학회 논문지, 제14권, 5호, pp. 97-107, 2004
  7. Y. Lamdan and H. Wolfson, 'Geometric Hashing: A General and Efficientn Model-Based Recognition Scheme,' Proc. Int'l Conf. Computer Vision, pp. 238-249, 1988
  8. H. Wolfson and I. Rigoutsos, 'Geometric Hashing: an Overview,' IEEE Computational Science and Engineering, vol. 4, pp. 10-21, Oct.-Dec. 1997
  9. C. Wang, V. Prasanna, H. Kim, and A. Khokhar, 'Scalable Data Parallel Implementations of Object Recognition Using Geometric Hashing,' Journal of Parallel and Distributed Computing, 21, pp. 96-109, 1994 https://doi.org/10.1006/jpdc.1994.1044
  10. Y. Chung, S. Choi. and V. Prasanna, 'Parallel Object Recognition on an FPGA-based Configurable Computing Platform,' Proc. of the 4th IEEE International Workshop on CAMP, pp. 143-152, Oct. 1997