99
-1- 정보통신산업기술개발사업 ' ' 최종연구개발결과보고서 임베디드 얼굴인식 전용 하드웨어 개발 Development of an Embedded Face Recognition Hardware 2003. 1. 29 주관연구기관 : 아이칩스 ( ) 참여연구기관 : 워치비젼 ( )

최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 1 -

정보통신산업기술개발사업' '

최종연구개발결과보고서

임베디드 얼굴인식 전용 하드웨어 개발

Development of an Embedded Face Recognition Hardware

2003. 1. 29

주관연구기관 : 주 아이칩스( )

참여연구기관 : 주 워치비젼( )

정 보 통 신 부

Page 2: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 2 -

제 출 문

정보통신부장관 귀하

본 보고서를 정보통신산업기술개발사업 임베디드 얼굴인식 전용 하드웨어 개발 과제의 연' '

구개발결과 보고서로 제출합니다.

년 월 일2003 1 29

주관연구기관: 주 아이칩스( )

참여연구기관: 주 워치비젼( )

연구책임자 : 김유항

참여연구원 : 이준배 곽세화 위양원 김득희, , , ,

노성원 박정선 강태구 박창범, , ,

이상웅 노명철 양희덕, , ,

이유진 이치우,

Page 3: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 3 -

CONTENTS

Chapter I Introduction

Section I Review and Purpose of Face Recognition System

1. Purpose of Development

1. Previous Works

Section Face Recognition AlgorithmⅡ

1. Pre-Processing Part

A. Edge Detect

B. Histogram Equalizing

C. Labeling

D. Eye Detect

E. Face Rotation

F. Face Shrink

2. Face Recognition Part

A. PCA(Principal Component Analysis)

B. SVM(Support Vector Machines)

Chapter Face Recognition System EmbodimentⅡ

Section I DSP board System Embodiment

1. Requirement of Each Module

2. Input Image Control

Section FPGA Board System EmbodimentⅡ

1. Pre-Processing Part

A. Edge Detect

B. Labeling

C. Eye Detect

Page 4: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 4 -

D. Face Rotation

E. Face Shrink

2. PCA & SVM Part

A. PCA

나. SVM

3. Micom Part

Chapter Capability and ParityⅢ

Section I Face Recognition System Test·

1. Algorithm Test

2. FPGA board Test

Section Parity and PlanⅡ

Reference

Appendix

1. Face Recognition System Circuit

Technical Development summary Table

Page 5: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 5 -

목 차

제 장 서 론1

제 절 기술 현황 및 목적1

개발 목적1.

관련연구2.

제 절 얼굴 인식 알고리즘2 .

전처리 파트1.

가 에지추출.

나 히스토그램 평활화.

다 라벨링.

라 눈찾기.

마 얼굴 회전.

바 얼굴 축소.

얼굴 인식 부분2.

가 주성분 분석. (PCA : Principal Component Analysis)

나. SVM(Support Vector Machines)

제 장 얼굴 인식 시스템 구현2

제 절 를 이용한 알고리즘 변환1 DSP board

각 모듈별 소요 시간 측정1.

입력 영상 조절2.

Page 6: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 6 -

제 절 얼굴 인식 구현2 . FPGA Board

전처리파트1.

가 에지추출.

나 라벨링.

다 눈찾기.

라 얼굴회전.

마 얼굴축소.

파트2. PCA & SVM

가. PCA

나. SVM

마이컴 부3.

제 장 성능 및 평가3

제 절 얼굴인식 시스템 성능 테스트1

알고리즘 성능 테스트1.

성능 테스트2. FPGA board

제 절 평가 및 향후 계획2

참고문헌

부 록

얼굴인식 시스템 회로도1.

기술연구개발결과 요약표

Page 7: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 7 -

제 장 서 론1

제 절 기술 현황 및 목적1

개발 목적1.

생체인식의 활용 다양화와 다양한 신규시장의 창출은 비단 국내만의 현상이 아니며 전 세계

적으로 주된 동향이기도 하다 은 산업을 유망한. MIT, Gartner Group Biometrics 21C 10

대 기술로 선정한 바 있으며 년 신기술 자료에 의하면 년까지Gartner 2000 2002 Fortune

지 선정 대 기업 중 가 컴퓨터 의 정보보호를 위해 생체인증을 적용할 것으1,000 15% , N/W

로 전망하고 있음에서도 간접적으로 알 수 있다.

생체인식은 지문이나 손 모양 음성 홍채 망막 혈관 서명에 이르기까지 개인에 따라 그, , , , ,

특징이 명확하게 다른 신체 부위나 행동 특성으로 사람을 식별하고 인증하는 것을 말하며,

이러한 생체 특징들은 분실 망각의 우려가 없고 나아가서는 복제나 위조가 불가능하다는,

점에서 최근 열쇠나 카드식 출입통제 시스템 등 전통적인 보안시스템을 대신할 차세대 보안

기술로 각광받고 있다 여러 가지 생체 특징들 가운데에서도 특히 얼굴을 이용한 사용자 식.

별은 친숙성 및 변별성이 탁월하고 활용이 매우 편리하다는 장점으로 인해 새로운 생체인식

기술 분야로서 전 세계적으로 부각되고 있다 얼굴인식 기술은 사용자가 신체의 일부를 직.

접 기계에 접촉해야 하는 불편함이 없어 특별한 거부감 없이 다양한 분야에 응용될 수 있다

[Mslee96].

이러한 얼굴 인식 기술의 편리성 때문에 공공 보안시스템에서 스마트카드 결합 솔루션 및

공항 등에서의 출입국 솔루션 여권 솔루션 전자주민증 솔루션 등 많은 활용방안이 제안되, ,

고 있다 더불어 온라인 인증 특히 금융 부문에서는 생체인식과 인증과의 결합이 요구. PKI

되고 있다.

Page 8: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 8 -

이에 따라 실제 보안시스템에서의 적용에는 정확도에 대한 의구심이 제기되는 것이 현실이

다 그러나 환경에서의 얼굴인식의 현재시장에서 시스템 설비의 고비용 구현되. PC Based ,

는 응용제품의 물리적인 크기 제약 인증 시간의 지연 사용상의 불편 등의 문제점을 가진, ,

다 하지만 이러한 문제점을 임베디드 시스템에의 보안모듈을 통해 근본적으로 해결할 수.

있다.

인증시간의 단축과 저가의 고 신뢰도 보안시스템의 필요라는 시장욕구 충족과 국내 최초의

상용 임베디드 얼굴인식 보안모듈개발이라는 기술 선점측면에서 기술개발이 절실하다.

본 시스템은 상에서 보인 얼굴 인식 알고리즘을 하드웨어로 구성 상에서 성능을 나타PC , PC

낼 수 있으며 기반에서 문제가 되었던 크기 및 인증시간을 개선하였다PC , .

(Fig. 1.1 Object Of Development)

관련 연구2.

얼굴 인식 및 검증 기술은 주로 차원 영상으로 획득되는 얼굴 데이터에서 서로 다른 사람2

의 미세한 차이를 구별하고 동시에 같은 사람의 얼굴 영상으로부터는 작은 변형에도 불구,

하고 동일한 특징들을 찾아내는 기술에 집중되고 있다.

얼굴 인식 기법은 크게 기하학적인 특징 정합 방법과 템플릿 패턴 정합으로 나눌 수 있다.

기하학적인 특징 정합 방법은 눈 코 입 과 같은 얼굴 구성요소들 사이의 위치 모양 코의, , , ,

폭과 길이의 비 등의 거리를 측정함으로써 두 얼굴 영상의 유사도를 비교한다.

Page 9: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 9 -

이 방법이 우수한 성능을 보이기 위해서는 각각의 얼굴에 대한 정규화 과정이 선행되어야

한다 템플릿 패턴 정합 방법은 얼굴을 빛 과 형태 로 구성된 차원 영상으로. (light) (shape) 2

보고 인식을 시도한다 이 방법에서도 크기 또는 대비 등의 정규화 과정이 전처리. (contrast)

로써 수행된다 현재 얼굴 인식 및 검증 시스템에 사용되고 있는 대표적인 템플릿 정합 방.

법으로는 주성분 분석 국부적 특징 분석(PCA: Principal Component Analysis), (LFA:

변형 가능한 명도 표면Local Feature Analysis)[Penev96], (Deformable Intensity

을 이용한 방법 웨이블릿 과Surface) Bayesian [Mog96], Gabor (wavelet) elastic bunch

그래프 매칭 알고리즘 선형판별 분석 등[Wiskott97], (LDA: Linear Discriminant Analysis)

이 있다.

주성분 분석 은 다변량 분석 방법으로서 전체 영상의 데이터를 데이터의 분산이 큰(PCA) ,

몇 개의 고유방향 에 대한 축으로 선형 투사시켜 데이터의 차원을 줄이는 방법(EigenFaces)

으로 서로 다른 클래스를 차원을 줄여서 간단하게 표현할 수 있는 체계적이고 실용적인 방,

법으로 알려져 왔다 그림 그러나 이 방법은 클래스와의 관계를 고려하지 못하고 전체( 1.2). ,

데이터의 분산을 최대로 하는 방향으로만 선형투사 하기 때문에 클래스간의 겹침이 발생할

수 있다 즉 결과 주성분이 얼굴 전체 영상에 대한 표현으로서 눈 코 입 등과 같은 세부. , , , ,

적인 표현이 아니므로 다양한 변형을 표현할 수 있는 국부적 특징을 추출하(topographic) ,

지 못한다는 문제점을 가지고 있다 그러나 주성분 분석방법은 수학적으로 잘 정의되어 있. ,

는 특성 때문에 기본 의 개념을 조금씩 변형시킨 여러 가지 방법들에 널리 응용되고PCA

있다 응용 예로써. Eigenface, Modular Eigenfaces, Multi-dimensional discriminant

등이 있다analysis, Eigen space, Extracting high-order local autocorrelation features .

Page 10: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 10 -

(Fig. 1.2 Eigenfaces in PCA)

주성분 분석 방법과 유사한 방법으로서 선형판별 분석(LDA: linear discriminant analysis)

법을 제안할 수 있는데 이 방법은 공분산 행렬이 아닌 개별 행렬(covariance) (separation)

상에서 고유값 분석이 이루어진다는 차이점을 가지고 있다.

등에 의하여 제안된 웨이블렛과 탄력적 구성 요소 그래프 매칭 방법은L. Wiskott Gabor

생물학적 동적 연결 구조 에 기반하여 얼굴을 인식한다(Dynamic link architecture) . Gabor

웨이블렛을 뇌의 시각 경로를 본따 모형화한 개념 으로 사용하고 얼굴의 구(keyhole view) ,

성 요소들의 그래프 에 의하여 얼굴을 표현한다 그림 얼굴 구성 요(face bunch graph) ( 1.3).

소 그래프는 눈 코 입 그 밖의 윤곽 점들로써 구성되는 식별가능한 점들에 위치한 노드로, , ,

구성된다 각각의 노드에서는 웨이블렛의 크기로써 표현되는 특징들의 집합을 추출. Gabor

한다 다음 탄력 그래프 정합의 과정을 통하여 두 개의 패턴을 비교한다 이 방법은 사람이. , .

머리 모양을 바꾸거나 수염을 기르거나 안경 또는 모자를 착용하더라고 인식이 가능하다는,

장점을 가지고 있다.

본 과제에서 적용된 얼굴인식 시스템은 기반 방법으로서 분SVM(Support Vector Machine)

류 및 인식 성능이 매우 뛰어나 최근 새로운 인식 엔진으로서 매우 각광받는 방법이다 이.

방법은 둘 또는 그 이상의 클래스를 분류함에 있어서 가장 대표적인 특성을 갖는 소수의,

벡터들을 이용하여 최적의 초평면을 구성하고 이를 기준으로 클래스를 분류하는 수학적 접

근법으로서 인식오류가 거의 없는 매우 정확한 인식 기술이다.

Page 11: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 11 -

특히 인식 엔진의 최적 분류 성능 외에도 시스템의 실시간 학습이 가능하여 실용적인 목적

에 매우 적합하다 나아가 두 클래스씩 쌍으로 비교한 후 보다 비슷한 하나의 클래스만으. ,

로 다시 쌍을 이뤄 단계적으로 분류해 나가는 상향식 분류 방법을 취함으로써 추가데이터의

학습시 기존에 학습된 모델들의 수정 없이 새로 추가된 클래스의 모델만 학습하도록 하는

효율적인 구조를 지니고 있다[Mhyoo00].

(Fig. 1.3 wavelets and labeled graphs)

제 절 얼굴 인식 알고리즘2 .

전처리 파트1.

가 에지추출.

윤곽선 추출에는 여러 가지 알고리즘이 있지만 가장 잡음이 적고 윤곽선이 선명하게 추출될

수 있는 알고리즘을 적용하였을 때 정확한 얼굴을 추출할 수 있다 윤곽선 추출 알고리즘은.

다음과 같다.

차 미분에 의한 영상처리 방법(1) 1 :

차 미분에 의한 윤곽선 추출 알고리즘은 과 같으며 윤곽선은 각 방향에 의한1 (Table. 1.1)

영상 휘도신호의 주파수가 급변할수록 값이 높게 나타나게 된다.

Page 12: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 12 -

-

(Fig. 1.4 Edge Detect Flow Chart)

수직방향미분- : F(X, Y) = | F(X+1, Y) - F(X-1, Y) |

수평방향미분- : F(X, Y) = | F(X, Y-1) - F(X, Y+1) |

(Table. 1.1 Edge Detect of lst Differential)

Page 13: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 13 -

미분연산자 사용법(2)

미분 연산자는 차 미분으로서 디지털 영상데이터의 에지를 효과적으로 처리 할 수 있는1

방법 이다 미분 연산자는 등이 있으며 각기 노이즈와. Roberts, Prewitt, Sobel, Frei-Chen

에지 검출에 대한 차이가 다르다 보통 및 방법이 많이 쓰인다 연. Roberts Sobel . Roberts

산자는 다른 마스크보다 크기는 작지만 효과적으로 사용할 수 있다 이 연산자는 잡음에 매.

우 민감하다 다른 연산자들은 돌출된 영상의 값들을 잘 평균화시킨다 연산자는 수. . Sobel

평과 수직 윤곽보다는 대각선 방향에 놓여진 윤곽에 더 민감하며 연산자는 대각 방, Prewitt

향의 윤곽보다는 수평 수직 윤곽에 더 민감하게 나타난다 에지 검출은 다음과 같은 마스, .

크를 회선함으로써 찾을 수 있다.

(Table. 1.2 Differential Vector For Edge Detect)

차 미분 에 의한 영상처리 방법(3) 2 (gradient)

차 미분은 차 미분 를 다시 한번 미분하는 방법으로 윤곽의 강도만을 구하며 방2 1 (gradient)

향은 구하지 않는다.

Page 14: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 14 -

장점은 검출된 에지의 윤곽선들이 폐곡선을 이루며 밝기 값이 점차적으로 변화되는 영역에

대해서는 반응을 보이지 않는다.

차 미분 연산자의 좋은 예로 라플라시안 연산자가 있다 이 연산자는 다른 연2 (Laplacian) .

산자들 보다 더욱 뚜렷한 에지를 검출한다 에지 검출은 다음과 같은 마스크를 회선함으로.

써 찾을 수 있다.

(Table. 1.3 Mask of 2nd Differential)

라플라시안 연산자가 가진 한 가지 문제점은 잡음에 민감하다는 것이다 이러한 이유로 단.

순한 영교차 처리의 결과가 실제 존재하는 것보다 더 많은 에지가 검출된다 위와 같은 윤.

곽선 추출 방법은 에지 라인이 경우에는 에지의 크기를 비교하여 임계값 이상일 경우에 에

지로 정의할 수 있도록 임의의 임계값을 사용해야 한다.

얼굴인식에서 윤곽선 추출 알고리즘 처리 시 가장 고려해할 사항으로 윤곽선 추출 방향을

결정해야 한다 왜냐하면 얼굴영역에서 특징을 잘 구별 할 수 있는 부위에는 눈 눈썹 입. , , ,

코 귀 순으로 윤곽선은 대부분 수평 방향으로 존재하기 때문이다 따라서 각각의 윤곽선, .

추출 알고리즘을 적용한 결과잡음이 비교적 적게 나타나며 방향성을 가진 수직 방향의 소벨

알고리즘을 적용하였다.

을 위한 에지추출 방법(4) Labeling

입력된 영상에서 얼굴 영역을 찾기 위해서는 프로세서가 눈과 눈썹 입과 같은 이미지를 인,

식해야 한다 따라서 추출된 에지영상에 레이블의 번호를 부여하는 작업이 필요하다. .

Page 15: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 15 -

하지만 위와 같은 알고리즘을 적용한다면 눈이나 눈썹이 두 줄이 되어 프로세서가 식별하기

가 곤란하다 즉 에지는 얼굴의 밝은 영역에서 어두운 영역으로 나타나고 또한 반대로 어. ,

두운 영역에서 밝은 영역으로 나타난다 따라서 이 두개의 에지 중 한 영역만 나타나게 하.

여 을 위한 에지를 검출한다Labeling .

에지추출 연결 보간법 적용(5) (Connection interpolation)

에지 영상은 눈썹과 같이 주변 밝기에 따라 에지의 끊김 현상이 발생 할 수 있다 만약 이.

러한 현상이 발생하면 같은 눈썹 에지라도 다른 번호가 부여되어 얼굴 찾기가 어려워 질 수

있다 따라서 이전 픽셀과 현재 픽셀의 에지를 연산 처리하여 픽셀 정도 분리. BIT OR 1 2∼

된 영역을 이어줌으로서 이와 같은 분리된 이미지를 이주는 연결 보간법을 사용하였다.

의 처리 진화(6) Labeling Edge Threshold Level (2 )

에지 영상은 휘도 레벨로 부터 의 데이터 값을 가지고 있다 따라서 에지영상에서 레0 255 .

이블의 번호를 부여하기 위해 에지값을 확실히 구분할 필요가 있다 즉 에지 농도가 어느.

레벨 이상 높으면 에지 이고 아니면 에지가 없는 것으로 구분한다 이 작업이(High) (Low) . 2

진화이며 영상에서의 은 정도가 가장 적정선으로 파악되었다CCD Threshold Level '80' .

나 히스토그램 평활화. (Histogram equalizing)

이 과정은 축 방으로 추출한 에지에 적용하는 방식으로 에지 영상의 명암 값 분포가 빈Y (fy)

약할 때 히스토그램 평활화라고 불리는 영상처리에 의해 향상될 수 있다 히스토그램 평활.

화의 궁극적인 목적은 일정한 분포를 가진 히스토그램을 생성하는 것이다 따라서 평활화를.

수행한 에지의 히스토그램은 보다 균일한 분포를 가질 것이고 인식률에 좋은 영향을 미칠

것이다.

Page 16: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 16 -

히스토그램 평활화 알고리즘(1)

히스토그램 평활화는 히스토그램을 평탄하게 하는 것이 아니라 명암 값 분포를 재분배하는

것이다 히스토그램 평활화는 포인트 처리이기 때문에 새로운 명암 값이 영상에 추가되지는.

않는다 즉 기존의 명암 값은 새로운 값으로 설정되지만 명암 값의 실질적인 개수는 입력. ,

영상의 명암 값의 개수와 동일하거나 적을 것이다.

히스토그램 평활화는 다음과 같은 단계로 이루어진다3 .

히스토그램을 생성한다1. .

히스토그램의 정규화 된 합을 계산한다2. .

입력영상을 변형하여 결과영상을 생성한다3. .

히스토그램 평활화 수행과정 예(2)

(Fig. 1.5 Original Image Data & Histogram)

는 원영상의 히스토그램을 추출한 결과로서 비교적 어두운 영역에 분포되어 있음(Fig. 1.5)

을 알 수 있다.

Page 17: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 17 -

여기서 스케일 벡터를 구하면 다음과 같다.

다음 은 히스토그램과 히스토그램에 스케일 벡터를 적용한 을(Table.1.4) Normalized Sum

유도한 과정이다.

(Table. 1.4 Normalized Sum By Histogram)

을 적용 후 반올림을 취하면 에서와 같이 원 영상을 손상시키지Normalized Sum (Fig.1.6)

않는 상태로 이미지가 평활화 되었음을 확인할 수 있다.

히스토그램 평활화는 영상이 어두운 영역에서 세밀한 부분을 가질 경우 효과적으로 수행된

다 히스토그램 평활화는 다른 영상처리를 하기 전에 모든 영상에 대해서 적용할 수 있으나.

이런 처리는 바람직하지 못하다 왜냐하면 화질이 좋은 영상은 히스토그램 평활화에 의해.

질이 나빠질 수 있기 때문이다 따라서 히스토그램 평활화는 위에서 언급한 적절한 영상에.

적용될 경우 강력한 기능을 수행할 수 있다 실영상의 히스토그램 평활화 된 예를 살펴보면.

과 같다(Fig.1.8) .

Page 18: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 18 -

(Fig. 1.6 Normalized Sum & Histogram Equalizing)

(Fig. 1.7 Original Data & Histogram Equalizing Data)

(Fig. 1.8 Original Image & Histogram Equalizing Image)

Page 19: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 19 -

다 라벨링.

영상 채색 기법은 차원 및 차원 영상처리에서 많이 이용되는 기본적인처리 과정으로 활2 3

발한 연구가 이루어지고 있다 영역 채색이란 영상에서 분리되어진 각 영역에 고요한 부호.

를 부여하는 영상 처리 기법으로 이진 영상의 분할 영역의 특징 추출 및 영상 복원 등에,

이용된다.

순차적 알고리즘(1)

동치 테이블을 이용하여 단 두 번의 루프로 라벨링을 끝낼 수 있다 단점은 라벨링 번호 자.

체가 연속적이지 않다는 것이다 한번 모든 물체를 검색하여 라벨을 부친다 라벨을 하다가. .

다른 라벨을 만나게 되면 동치테이블에 입력한다 다시 루프를 돌려서 동치테이블의 라벨.

중 최소치로 다시 라벨한다.

재귀 알고리즘(2)

을 검색하여 물체에 해당하는 검정색 픽셀을 찾은 다음 이것과 이어지는 모든 픽셀bitmap

을 라벨링 해주고 다시 다른 검정색 픽셀을 찾아가는 방법이다 이 알고리즘은 물체가 많거.

나 자형 구조를 많이 가진 물체는 루프를 많이 돌아야 하기 때문에 시간적인 문제가 생긴U

다.

Page 20: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 20 -

알고리즘 응용2.

얼굴인식 시스템에서의 은 위의 두 알고리즘을 응용한 것으로서 다음과 같다 아래Labeling .

의 마스크를 이용하여 메모리를 순차적으로 한다720 * 240 Scan .

(Fig. 1.9 Mask1)

(Fig. 1.10 Mask2)

(Fig.1.11 Labeling Algorithm Flowchart

Page 21: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 21 -

라 눈찾기.

라벨 디텍트(1)

(Fig. 1.12 Label Detect Flow Chart)

Page 22: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 22 -

눈 찾기 부분의 회로 구조(2)

눈 찾기 부분의 회로에서는 눈 크기에 대한 후보 값들이 되는 부분을 메모리에 저장한 후

한 후보를 기준으로 좌측 우측 상측을 비교 하여 그 후보가 눈이라고 해당 하는 부분을, ,

결정하게 된다 눈 크기의 후보가 될 수 있는 부분을 저장하기 위해서 내부의. FPGA

를 사용하여 구현하였다 눈 크기의 해당하는 부분은 의EAB(Embedded Array Block) . RAS

최대값 의 최소값 의 최대값 의 최소값 최대값과 최소값의 차, RAS , CAS , CAS , RAS RAS ,

최대값과 의 최소값의 차를 저장하여야 하므로 개의 메모리가 필요하다 한 개CAS CAS 6 .

의 의 크기는 을 사용 하였다 전체 시스템의 회로구조는 파이EAB 22bits 256-word RAM .

프라인 구조로 설계하였다.

마 얼굴 회전.

카메라에 입력되는 다양한 얼굴 데이터를 두 눈이 수평으로 정규화 하여 데이터베이스에,

저장 및 상호 비교 연산 시 얼굴 오차를 줄인다.ㆍ

바른 얼굴일 때 두 눈 사이가 수평임을 이용 두 눈 사이의 좌표를 통해 얼굴의 회전 각도,

를 구한다 각도를 구한 후 에 저장 되 있는 얼굴데이터를 회전시켜 다른. SDRAM SDRAM

에 저장한다 회전 시 필요한 값은 소수점 넷째 자릿수 까지. cos, sin Floating Point

로 파일에 저장한다 얼굴 데이터의 를 로 변Number ROM . Address Floating Point Number

환 후 변환 공식에 대입한다 끝으로 변환된 에 를 저장한다Image . , Address Image Data .

Page 23: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 23 -

(Fig. 1.13 Face Rotation Flow Chart)

두 눈의 끝 좌표 를 통해 기울기 각도를 구한다(X1, Y1) (X2, Y2) .

(Fig. 1.14 Angle Calculation)

각도구하기 알고리즘(1)

얼굴회전알고리즘(2)

위 계산식은 얼굴의 한쪽 눈 좌표 왼쪽 눈 좌표 를 중심으로 얼굴 영상을 회전 시킨 것이( )

다 그리고 얼굴 각도가 도 안에 있는 것만을 사용 심하게 기울어진 얼굴 영상은 사. +(-)5 ,

용치 않았다 도 이상의 각도가 검출 시 회전 연산을 중지하고 더 정확한 얼굴 영상을 입. 5

력을 요구한다.

Page 24: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 24 -

미만인 경우 얼굴 회전을 하며 회전된 얼굴 영상을 다음 얼굴 처리 불럭인 축소불럭으5° ,

로 넘긴다.

얼굴 회전 시 회전각 및 값 이 매우 작으므로 정확한 회전 영상을 얻기 위해 각(SIN COS ) ,

얼굴 영상 좌표를 로 교체 후 연산을 수행한다32bit Floating Point Number .

의 부호를 나타낸다Sign ----- binary floating---point number .

의 기수부를 나타낸다Exponent - binary floating---point number .

최대 까지의 이다127 8-bit unsigned integers .

진수로 나누어진 가수부를 나타낸다 즉 영상 데이터 어드레스를 부동 소수점으Matissa 2 .

로 바꾼 후 회전 연산을 수행하며 연산 종료 후 다시 부동소수점을 일반 정수로 환산 하는,

것이다.

각도구하기 블록다이어그램(3)

(Fig. 1.l5 Angle Calculation Flow Chart)

얼굴회전블록다이어그램(4)

(Fig. 1.16 Face Rotation Flow Chart)

Page 25: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 25 -

바 얼굴 축소.

(Fig. 1.17 Face Shrink Flow Chart)

알고리즘(1) : bilinear

Actuality image coordinate arithmetic○

calculate weighted distance○

Page 26: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 26 -

Pixel value acquisition in actuality image○

Shrink pixel value arithmetic○

알고리즘 응용(2)

알고리즘은 축소된 화소값을 얻기 위하여 연산을 번 수행한다 이Bilinear interpolation 3 .

알고리즘은 방식에 해당되는 알고리즘으로 얼굴인식 시스템에 이 알고리즘을Progressive

적용하기 위해서는 방식으로 변환하여야 한다interlace .

위의 알고리즘의 번에 해당되는 연산을 하여야한다 얼굴인시(1-7), (1-9), (1-10) modify .

시스템에서 축소율은 로 고정이 되어 있으므로 를 구하는 연산은 를 이64 Scale Factor shitf

용하여 간단히 구할 수 있다 또한 얼굴인식 시스템은 방식이므로 와 는. interlace NW SW

같은 값이며 또한 와 값은 같은 값이다NE SE .

Page 27: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 27 -

그렇기 때문에 화소값을 획득하는 과정은 만을 획득하면 된다 획득한 화소값은NW, SW . 2

개뿐이므로 번의 연산역시 한번으로 간략하 된다(1-10) .

값만을 연산하면 축소된 영상의 화소값을 구할 수 있다.

얼굴 인식 부분2.

가 주성분 분석. (PCA: Principal Component Analysis)

특징 추출부는 얼굴의 표정 및 시간상의 변화 등 다양한 변화에도 개개인의 특징들을 잘 반

영하여 구별할 수 있는 특징 값들을 추출하며 특히 계산상의 부담을 줄이기 위해 영상 데,

이터 차원의 크기를 최소화하는 단계이다 이를 위해 본 과제의 얼굴 인식 시스템 에서는.

에 기반하여 특징 추출을 하는 모듈로 구성하여 연산에 필요한 차원을 최대한 줄일 수PCA ,

있게 한다 이러한 주성분 분석 은 다변량 분석 방법으로서 전체 영상의 데이터를 데. (PCA)

이터의 분산이 큰 몇 개의 고유방향에 대한 축으로 선형 투사시켜 데이터의 차원을 줄이는

방법으로 다양한 변형을 표현할 수 있는 국부적 특징을 추출하지 못한다는 문제점을 가지,

고 있지만 서로 다른 클래스를 차원을 줄여서 간단하게 표현할 수 있는 체계적이고 실용적,

인 방법이다 이 단계에서상기와 같이 추출된 특징 값들은 정규화하여 얼굴 인식부로 전송.

된다.

Page 28: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 28 -

(Fig. 1.18 Characteristic Vector Sampling With PCA)

알고리즘 및 수식(1) PCA

는 변환을 그 이론적 기반으로 해서 얼굴 영상을 영상의 크기PCA K-L(Karhunen-Loeve)

보다 적은 수의 벡터로 표현하는 방법으로서 그 처리 과정은 다음과 같다.

개의 얼굴 영상의 샘플 집합을 다음과 같이 표현하자M .

이 샘플 집합의 평균 영상은 다음과 같이 정의된다.

각각의 샘플 영상에서 평균 영상을 뺀 차 벡터를 구하고 그 결과로부터 공분산 행렬을 계,

산한다 여기서. A=[ φ 1,φ 2,.......,φ M 이다] .

Page 29: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 29 -

이 식을 이용하여 차 벡터들로 이루어진 공간을 표현할 수 있는 벡터 집합의 고유 벡터와

고유치를 구하는 데 연산량을 줄이기 위해, ATA 의 고유치와 고유 벡터를 라고 하면, ,λ ν

C=AAT 의 고유 벡터를 구하는 방법은 다음과 같다.

또한 우리는 의 행렬M*M L=ATA 를 만들

수 있다 여기서. L mn=ΦT

mΦ n이며 행렬 을 이용해서 개의 고유벡터, L M νι를 구할 수 있

다 이 벡터. νι를 이용해서 다음과 같이 개의 학습 집합의 얼굴에 대한 고유 얼굴M uι을 구

할 수 있다[Turk91].

여기서 구해진 개의 고유치는 공분산의 고유벡터의 성질에 의해 정규직교 한M (orthonomal)

성질을 가지게 되며 이 고유 벡터들이 얼굴 영상 데이터베이스의 공간을 표현할 수 있는,

기저를 이루게 되고 이를 고유 얼굴이라고 한다.

Page 30: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 30 -

(Fig. 1.19 Characteristic Face Example)

하드웨어 구현(2)

를 적용한 얼굴 특징 추출을 하드웨어로 구현하기 위해서 우리는 다음 세 가지 사항에PCA

유의하여 알고리즘을 적용해야 한다.

첫째로 를 적용한 특징 추출 방법을 하드웨어로 구현하기 위해서는 메모리를 최소화하, PCA

고 연산 속도를 빠르게 하는 접근이 필요하다 특징추출에서 주성분의 계산을 위해. PCA

변환 가우시안 소거법 방법과Jacobi , , SVD(Singular Value Decomposition), Householder

같은 다양한 고유치 근사 방법들이 있다 그러나 하드웨어 특성상 메모리와 시간을 최소화.

하기 위해서는 단순하고 빠른 고유치 근사 방법이 적합하다 여기서는 하드웨어의 메모리와,

시간을 고려하여 고유치와 고유벡터 계산에 변환이 이용되었다 이 방법은 대각 행렬Jacobi .

을 입력으로 하고 다른 방법들에 비해 계산이 간단하므로 시간과 메모리를 최소화 시키면,

서 원하는 고유치와 고유벡터를 구할 수 있는 장점이 있다 따라서 이 방법에 의해서 영상.

의 크기에 의존하던 고유치의 계산은 영상 데이터의 개수에 의존하게 되므로 시간과 메모리

가 크게 줄어들게 된다.

둘째로 연산을 최소화 하면서 인식 성능을 높이기 위해서는 주성분, (Principal Component)

들의 수를 적절하게 선택하는 것이 중요하다 개의 학습 영상에 대해서 얻어낼 수 있는. M

의미 있는 고유 얼굴의 수는 개이지만 대부분의 정보는 고유치가 큰 몇 개의 벡터에 집M ,

중되어 있기 때문에 개의 고유 얼굴을 모두 사용하는 것은 하드웨어 구현에 있어서 적합, M

하지 않다.

Page 31: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 31 -

그러므로 연산 속도를 고려하여 인식에 사용될 특징 벡터의 수를 적절하게 선택하는 것이

효율적이다 특히 에서 고유치는 지수함수처럼 급속히 감소하므로 마지막에 위치한 여. PCA

러 개의 주성분을 생략하더라도 오차가 매우 작음을 알 수 있다 이 때 개의 고유 벡터. , M'

는 관련된 고유치의 크기에 의해서 큰 값부터 정렬한 것이다 그림 는 얼굴 영상에서 고유. 2

치의 분포를 나타낸다.

(Fig. 1.20 Characteristic Distribution Of Study Image)

위 그림에서 보이듯이 고유치가 에 가까워질수록 영상의 특징을 가지지 않게 되므로 개0 15

이상의 고유치는 인식 성능에 크게 영향을 주지 않게 된다 본 과제에는 개의 값. 10 20 PC∼

으로 실험한 후 인식 성능과 속도를 고려하여 의 개수를 정하였다 의 경우PC . A. Pentland

조명의 영향을 고려하여 처음 세 개의 고유벡터를 제거하고 나머지를 사용하였으나 본 시,

스템에서는 얼굴 영상의 중요한 정보를 손실하기 때문에 처음 세 개의 고유 벡터를 그대로

사용하였다[Pent193].

Page 32: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 32 -

마지막으로 하드웨어 구현을 위해서는 추가 등록 및 기존 등록된 데이터를 갱신 하, (update)

기 위해서 필요한 데이터를 저장하고 불러오는 메모리 인터페이스가 필요하다 를 이용. PCA

한 얼굴 특징 추출 방법은 학습 영역과 실험 영역 두 영역으로 나뉜다 먼저 학습 영역에서.

고유 얼굴을 생성시키고 모든 학습 영상을 얼굴 공간에 투사시켜 몇 개의 주성분 값들을 롬

에 저장한다 이 때 등록 혹은 실험을 하기 위해서 학습 영역에서 구해진 평균영상과 고유. ,

벡터들을 롬에 저장시킨다 실험 영역에서는 테스트 영상과 롬에 저장되었던 고유 얼굴의.

내적으로 나온 주성분을 인식기의 테스트입력으로 사용하게 된다 그 과정은 다음과SVM .

같다.

(Fig. 1.21 Face Characteristic Detect Using PCA)

Page 33: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 33 -

나. SVM(Support Vector Machines)

알고리즘 개요(1).

은 에 의해 제안된 통계학적 학습이론에 기반한 범용적인 근사치로서 기존의SVM Vapnik ,

학습이론에서 볼 수 없는 여러 독특한 특징들과 더불어 뛰어난 경험적인 성능으로 인해 많,

은 관심을 끌고 있다 은 기존의 통계학적인 학습 방법들에서 이용되는 경[Vapnik95]. SVM

험적인 위험 최소화 방법과는 다른 통계학적인 위험 최소화 방법을 이용하여 일반화 에러를

줄이는 방법을 취하고 있다 방법으로 학습한 결과는 두 부류간의 거리를 최대화하는. SVM ,

최적 분할 경계 를 찾는다 최적 분할경계란 두 부류간의(Optimal Separating Hyperplane) .

분류에 있어서 가능한 모든 입력 벡터에 대해서 같은 부류에 속하는 값들을 같은 부류로 결

정될 수 있게 하는 것과 동시에 각 부류간의 거리를 최대화 해주는 분할 경계로서 다음 식

과 같이 차원 공간상에서 초평면 의 형태를 갖는다n (hyperplane) .

다시 말해 은 가중치 벡터, SVM ω 와 바이어스 b 로 구성되는 의 최적 분할( ·x)+b=0ω

경계면을 가지도록 표본들 (x i,y i)N i-1 를 학습시키는 것이다 여기서[Cristi00]. xi는 번째i

예에 대한 입력 패턴이고, yi는 의 값을 가지는 원하는 응답이다 결국 개의 클래스와±1 . 2

최적 분할 경계면사이의 거리에 따른 여유 ρ ( ω , b 는) 2/| ω 가 되며 입력패턴을 최| ,

적으로 분류하는 최적 분할 경계면은 다음의 비용 함수 Θ ( ω 를 최소화 한다 여기서 비) .

용함수 Θ( ω 는) Θ ( ω ) =1/2| ω |2 이다 이 최적화 문제를 해결하기 위하여 라그랑지.

계수법을 이용하면 다음가 같은 라그랑지 함수를 얻을 수 있다.

Page 34: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 34 -

위의 식의 최적화 문제에 대한 해는 ω 와 b 에 대해서는 최소화되고, αi 에 대해서는0≥

최대화되어야 한다 따라서. ω 와 b 에 대한 라그랑지 함수의 최소는 각각에 대한 미분으로

얻어질 수 있다.

한편 위의 두 결과를 라그랑지 함수에 대입하면 다음과 같은 이원문제 의 목, (dual problem)

적함수 Q ( α 로 표현할 수 있다) .

따라서 분류 문제를 위의 이원문제로 생각하면 이는 학습패턴, (x i , y i)N i- 1 이 입력으로

주어졌을 때 제약조건, ∑N

i=1a iy i= 0 와 αi 0(≥ i =1,2,···,N 을 만족하는 목적함수) Q ( α 를)

최대화하는 라그랑지 계수 αi 를 찾는 것이다 따라서 위의 제약조건식 하에서 목적함수 식.

을 최대로 하는 최적의 라그랑지 계수 αio 를 찾으면 최적의 가중치 벡터, ω 가 계산될 수。

있고 최적의 바이어스, b 는 서포트 벡터 로부터 계산될 수 있다(support vector) .。

Page 35: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 35 -

그 각각의 계산식은 다음과 같다.

여기서 xr 과 xs 는 각각 다음의 조건을 만족하는 서포트 벡터이다.

한편 선형적으로 분류 가능하지 않는 문제에 대해서는 분류 가능하게 하는 일반화된 최적,

분할 경계면을 위해 음수가 아닌 스칼라 변수 ξi 을 사용한다 여기서의0 .≥ ξi 는 잘못된 분

류와 관계된 오차의 척도로 슬랙변수 이다 따라서 분류 불가능한 경우를 위(slach variable) .

한 슬랙변수 ξi 를 포함하는 제약조건은 다음과 같다.

또한 위의 제약조건을 만족하는 가중치 벡터 ω 와 슬랙변수 ξi 를 포함하는 비용함수 Θ (

ω, ξ 는 다음과 같다) .

Page 36: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 36 -

여기서 는 양의 값으로 학습오차와 일반화 능력 사이의 상관관계를 제어하는 파라미터이c

다 위의 식에 대한 최적화 문제에 대한 라그랑지 함수는. laplace ( , b, , ,ω ξ α β 로 표현)

되며 여기서, β 는 ξi 의 조건을 위한 라그랑지 계수이다 주어진 라그랑지 함수에 대한0 .≥

이원문제의 목적함수 Q ( α 는 앞에서 말한 분류 가능한 문제에서의 목적함수와 동일하다) .

단지 주어진 목적함수, Q ( α 의 최대화 조건은 꼭) ∑N

i= 1a iy i =0 와 0≤ αi ≤ c ( i =1,

2, ,… N 으로) αi 의 상한선이 주어지는 것만 다르다 또한 최적의 가중치 벡터와 최적의 바.

이어스 역시 앞과 같은 과정으로 구해진다.

지금까지의 최적 분할 경계면은 선형의 결정면만을 설명한 것으로 모든 문제에 적용 될 수

는 없으므로 비선형 분류도 가능하도록 하기 위해서는 좀더 일반적인 결정면을 가지도록,

하여야 한다 이를 위한 방법으로 에서는 입력벡터. SVM x 를 고차원으로 특징공간 z 로

의 사상을 이용한다 이는 분리 가능한 최적 분할 경계면이 입력공간에서 비선형이나 변환.

을 통해 고차원의 특징공간에서 선형적으로 표현될 수 있느냐 하는 것이다 이렇게 입력공.

간의 입력벡터를 특징공간으로 사상하기 해서는 커널함수 K 를 사용함으로써 계산이 가능

하다 여기서 커널함수 와 특징공간과의 관계는 다음과 같다. .

이때 사상을 위한 커널 함수로는 그리고 자형 함수 등이 이용, polynornial, radial basis, s-

된다 이때의 목적함수는 다음과 같다. .

Page 37: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 37 -

이러한 의 특징은 최적 분할 경계를 표현하기 위해서 두 부류의 모든 표본이 필요한SVM

것이 아니라 단지 최적 분할 경계 주변의 몇 개의 표본만으로도 최적 분할 경계를 충분히,

표현할 수 있다는 점이다 이 때에 최적 분할 경계의 표현에 사용된 표본들을 서포트 벡터.

라고 불리며 학습기는 서포트 벡터들과 이들의 계수를 학습하게 된다 또한 잡음이 들어가, .

거나 몇몇 학습 데이터가 잘못되어 특징 공간 내에 직선으로 분할하지 못하는 비선형의 경

우에도 접근이 가능하다는 특징을 갖고 있다 아래 에서는 차원의 공간상에서. (Fig. 2.18) n

차원의 고차원 평면으로 분류가 가능한 두 부류가 주어졌을 경우에 방법을 이용n-1 SVM

한 최적 분할 경계의 표현을 간략히 보여주고 있다.

(Fig.1.22 Optimal Separating Hyperplane & SVM)

구현(2)

앞에서 말한 을 실제로 하드웨어를 이용한 시스템에서 구SVM(Support Vector Machines)

현할 때는 두 가지 고려해야 할 점이 있다 첫째로 고려해야할 것이 계산상의 메모리 소비.

이고 두 번째로 고려해야할 것이 알고리즘의 연산 속도이다, .

Page 38: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 38 -

계산상의 메모리는 실제로 나 과 같은 제한된 메모리를 가지고 있는 시스템에 적DSP ASIC

용될 때 고려되어야 하며 연산 속도는 실시간 시스템에 적용할 때 꼭 고려되어야 하는 중,

요 항목이다 특히 은 문제를 풀 때 연산으로 인한 많은 양의 메모리를 요. SVM QP matrix

구하므로 이러한 메모리를 보다 효율적으로 사용하는 방법으로 구현하는 것이 관건이다 메.

모리와 속도 이 두 가지 항목을 고려하여 을 구현한 방법으로는SVM Chunking,

과 같은 방법이 있다Decomposition, SMO(Sequential Minimal Optimization) [Smola98].

O Chunking

방법은 서포트 벡터의 개수만큼 차원을 줄이는 방법으로 형태의 행렬Chunking , Quadratic

을 가지는 알고리즘은 복잡한 문제를 적은 수의 서브프로그램으로 분할Chunking QP QP

해서 계산하는 방법이다 이 방법은 행렬 내에서 라그랑지 승수의 값이 에 해당하는 행과. 0

열을 제거하여 행렬의 크기를 줄인다 그러므로 대용량의 문제는 작은 문제로 연속. QP QP

적으로 분해가 가능하다 그러나 대용량의 데이터의 경우에서는 서포트 벡터의 개수도 상대.

적으로 많아져서 사용하기가 부적합한 단점이 있다.

O Decomposition

방법은 문제를 매우 작은 세부 문제의 연속으로 분할한다 적어도 쿤Decomposition QP . -

터커 조건을 위반하는 하나의 데이터가 있으면 이전 세부 문제의 데이터에 추가를 한다, .

각 단계는 전체적인 목적함수를 줄이고 제약조건의 모든 것을 준수하는 가능한 점을 유지한

다 그러므로 적어도 하나의 제약조건을 항상 추가하는 세부 문제의 결과는 점근적으로. QP

수렴하게 된다 이러한 방법은 항상 세부 문제를 위한 상수크기의 행렬을 유지해야 하. QP

며 모든 단계에서 하나의 데이터를 추가하거나 제거한다, .

Page 39: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 39 -

적은 메모리를 사용한다는 장점이 있으나 이로 인하여 데이터의 메모리 이 많아져 속, swap

도가 느린 단점이 있다.

O SMO

방법은 의 문제를 풀기 위한 방법으로 추가적인 행렬의 저장소와 각각의 서SMO SVM QP ,

브프로그램을 위한 반복적인 단계가 없이 빨리 해결할 수 있는 단순한 알고리즘이다.

의 방법과 유사하게 서브프로그램으로 분할을 한다 그러나 전 방법과는 달리 최Osuna QP .

적화 문제를 해결하기 위해서 각각의 단계에서 가능한 가장 작은 값을 선택한다 라그랑지.

승수는 항상 선형동치 제약조건을 준수해야 하기 때문에 위에서 언급한 가장 작은 최적화,

문제는 두 개의 라그랑지 승수를 포함한다 매 단계에서 는 합쳐서 최적화하기 위해. SMO

두개의 라그랑지 승수를 선택하고 이러한 승수를 위한 최적화된 값을 찾는다 또한 적은, .

양의 저장 공간을 필요로 하기 때문에 대용량의 의 학습 문재를 개인용 나 또SVM PC DSP

는 과 같은 곳의 내부에 적당하게 맞출 수 있는 장점이 있다 하지만 두 개의 라그랑ASIC .

지 승수를 선택하여 결정함수를 구하는 과정에서 최적의 라그랑지를 선택하기 위해 많은 반

복 을 거치는 문제가 있다(iteration) .

에서는 이 세 가지 방법에 대한 알고리즘에 대한 요약을 보여주고 있다 그림에(Fig. 1.23) .

서 가로선은 학습 집합을 나타내며 굵은 사각형은 각 스텝에서 최적화되는 라그랑지 승수,

를 나타내고 있다 그림에서는 세 번의 스텝에 대해서 보여주고 있으며 각 방법은 스텝이. ,

증가할 때 마다 최적화 되는 사각형의 크기와 위치에 따라서 알고리즘을 표시하고 있다 이.

그림에서 볼 수 있듯이 의 방법은 방법의 최적화 크기를 고정한 것이고Osuna chunking ,

는 이를 극단적으로 최소화한 방법이다SMO .

Page 40: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 40 -

매 스텝에서 개씩만을 최적화하여 조건을 만족할 때까지 반복하는 과정에서 불필요2 KKT

한 과정을 줄이지만 반복되는 스텝의 수는 증가하게 된다.

(Fig. 1.23 Optimizing Process Of Each Algorism)[Smola98]

제한된 메모리를 가지는 하드웨어 상에서의 은 특징 벡터의 차원의 증가에 메모리와SVM

속도는 기하급수적으로 증가하게 된다 따라서 메모리의 효율적인 사용은 매우 중요하며 본.

과제에서는 메모리를 최소화할 수 있는 방법을 사용하였다SMO .

Page 41: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 41 -

제 장 얼굴 인식 시스템 구현2

상에서 구현되어 있는 알고리즘을 로 검증한 후 로 하드웨어 구현을 한다PC DSP , FPGA .

는 사의 을 사용하였고 는 사의 을 사DSP TI TMS320C6711 , FPGA Xilinx XC2V1000FG-456

용하였다 보드는 사에서 제공한 를 사용하여 카메라 모듈을 부착하여 실. DSP Test TI DSK

제 시스템을 검증하였고 는 자체적으로 제작 개발 하였다 와, FPGA Test Board . DSPㆍ

의 결과를 비교하여 구현된 알고리즘의 하드웨어로 변환하였을 경우 성능 및 인FPGA Test

증 시간을 비교해 본다.

(Fig. 2.l Face Recognition Flow Chart)

Page 42: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 42 -

제 절 를 이용한 알고리즘 변환1 DSP board

기존의 기반의 얼굴 인식 시스템을 하드웨어로 구현하는 본 과제에서 기존 알고리즘을PC ,

그대로 변환하는 것은 실질적으로 불가능한 일이다 카메라의 영상 획득 부분이나. (capture) ,

속도 메모리 등 범용적인 용도로서 사용자가 쓰기 편하고 물리적 제한을 느끼지 않도록, , ,

제작된 와 모든 환경변수들을 고려해야하는 하드웨어 프로그래밍은 근본적으로 다르기PC

때문이다 따라서 기존의 기반 알고리즘은 각종 하드웨어의 제약에 맞게 최적화되고 변. PC

환되어야 한다 이는 하드웨어 제작 시 필히 고려되어야 할 사항이며 알고리즘 변환에 소. ,

요되는 시간 단축과 환경의 예측에 대한 초기 실험을 위해서 상용 제품으로 판매되는 DSP

보드를 이용하였다 얼굴 인식 시스템을 위한 선정은 수행 속도 연산의 최적 메모리. DSP , ,

제한 문제 등을 고려하였으며 현재 상용으로 개발된 제품 중에서 영상 처리를 위한 도터, ,

보드가 지원되며 다른 면에서도 뛰어난 성능을 보이는 사의, TI(Texas Instrument)

을 선택하였다 또한 이 칩을 사용하여 제작된 와 를 사용하TMS320C6711 . C671l DSK IDK

였다[TI02].

(Fig. 2.2 C6000 IDK With TI)

Page 43: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 43 -

각 모듈별 소요 시간 측정1.

로 구현해야 할 각각의 모듈 중에서 소요 시간이 가장 큰 모듈을 찾아서 전체 수행FPGA ,

시간을 줄이기 위한 과정이 꼭 필요하다 에서 보듯이 기본적으로 영상 획득. (Table. 2.5)

및 기본 연산보다는 계속적으로 반복 과정을 거치는 얼굴 학습 과정과 플래쉬 메(Capture)

모리의 쓰기 시간 많은 메모리의 엑세스 해야 하는 연결성 찾는 과정에서 시간이 많이 소,

요되었다.

(Table.2.l Average Time Requirement Of Each Module)

기반의 시스템과 가장 차이가 나는 모듈은 얼굴 등록 모듈이었다 기반 시스템의 경우PC . PC

는 얼굴 등록 시 하드디스크에 저장을 하지만 본 제안 시스템의 경우 플래쉬 메모리에 저,

장을 하기 때문에 플래쉬 메모리가 가지는 고유의 쓰기 시간으로 인해 기반의 시스템, PC

보다 뚜렷한 속도 지연을 보여 주었다.

Page 44: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 44 -

에서 보여주는 결과에 따라 소요 시간이 큰 모듈에 대하여 최적화 과정을 거(Table. 2.5) , ,

치게 되었으며 이는 알고리즘의 변환과 하드웨어의 특화성등을 이용하여 진행되었다 이에, .

따는 최적화 결과는 표에 요약되었으며 최초 의 학습은 기본 의 학습 시 메모리, SVM SVM

의 제한 때문에 수행되지 못하였다 따라서 아래에 언급된 의 를 처리하는 과정을. SVM QP

메모리 최적화로 변경하여 수행하였다, .

입력 영상 조절2.

에서 제공되는 저가의 카메라는 일반적으로 상용 시스템에서 사용되는 기본적인IDK CCD

카메라와 거의 동일한 규격을 지니고 있다 따라서 기반에서 사용되는 고화질의 카메라. PC

와는 입력 영상에서 많은 차이점이 있었으며 특히 열화 현상에 의한 잡음이 두드러졌다, .

기존 얼굴 인식 시스템에서의 전처리 과정은 조명의 변화에 적응하기 위하여 에지를 추출,

한 후 히스토그램 평활화를 수행하는 과정을 거치게 된다 그러나 다음 그림에서처럼 잡음.

이 많은 경우 평활화 과정에 의해 잔존 잡음이 얼굴 추출에 많은 장애를 초래하므로 고화,

질의 카메라에서는 간단히 처리되었던 잡음 제거와는 다른 방법이 필요하였다.

기존 기반 시스템에서는 열화에 의한 잡음보다는 복잡한 배경과 일반잡음에 대한 감소를PC

위해서 가우시안 잡음 제거 방법을 사용하였으나 제안된 시스템에서는 소벨 에지 추출 필,

터에 잡음 제거를 위한 부분을 추가하고 또한 추출된 에지들 중에서 얼굴 윤곽에 효과적인,

부분의 강조를 위하여 일정한 연산을 추가하였다 이는 다음과 같은 수식을 통해 구현되었.

다 입력 영상의 각 픽셀의 좌표를 히스토그램 연산을 소벨 에지 연산을 이진. x, y, H, S,

화 연산을 사용된 에지 추출 방법을 에지의 양과 음의 방향을 각각 라고 한다B, E, x+, x-

면,

Page 45: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 45 -

와 같이 처리되었다 이 수정 방법에 따른 에지 추출의 효과는 다음 그림에서 보여지는 바.

와 같이 에서 제공되는 저가의 카메라를 사용할 때 효과적임을 알 수 있다 이 방법은IDK .

의 구현 과정에도 응용되었다 그림에서 수정 결과는 처리된 결과를 반전한 영상이다FPGA . .

제 절 얼굴 인식 구현2 . FPGA Board

영상 입력 얼굴영상 입력은 용 카메라와 카메라 방식 사용하였다: NTSC CCD PC (USB ) .

비디오 입력:○

- Viodo Signal : NTSC Color(CCIR-M) CVBS 1Vp-p

- Power Source : 12V DC/60Hz

만 화소 이상- Resolution : 768(H) × 480(V), 40

카메라- Scanning : CCD : 2:1 Interlace

카메라PC : NonInterlace

출력Color Decoder :○

- Chip : Color Decoder TW9903B

- Decoder Output : CCIR656 4:2:2 24Bit YUV(YCbCr) Digital Signal

Page 46: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 46 -

- Decoder Resolution :720(H) × 480(V)

비디오 입력부는 얼굴영상의 섬세한 특징추출과 고성능의 인식률을 위해 고해상도 저잡음의

카메라를 사용하였다 또한 카메라의 화소가 주변밝기에 민감하지 않으며 어두운 곳에서. ,

화면이 갑자기 밝아지는 암전류와 같은 현상이 일어나지 않도록 하기 위해 고성능의 카메라

를 선택하였다.

(Fig. 2.3 System Board)

Page 47: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 47 -

(Fig.2.4 Face Recognition Block Diagram)

Page 48: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 48 -

전처리 파트1.

가 에지추출.

(Fig. 2.5 Edge Detect Block Diagram)

Page 49: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 49 -

(Fig. 2.6 Bust Read Timing of Orignal Image)

(Fig. 2.7 Write Timing of EDGE Image)

Page 50: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 50 -

얼굴인식 시스템에서 윤곽선 추출과정은 인식률을 좌우하는 가장 중요한 전처리 작업이므로

그 정확도와 속도가 높아야한다 따라서 원영상 이미지를 버스트로 읽어 와서 에지를 연산.

하여 즉시 다른 메모리에 저장시키는 과정을 수행시켰다 은 원영상이 저장되어 있.(Fig. 2.7)

는 메모리에서 이미지데이터를 로드하는 과정의 파형이며 는 원영상 이미지를 로(Fig.2.8)

드한후 에지를 연산하여 타 메모리에 저장하는 의 실제 파형을 보인 것이다GPGA Signal .

(Fig. 2.8 Original Image)

(Fig. 2.9 Threshold Edge Image)

Page 51: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 51 -

과 은 얼굴인식 시스템에서 사용자의 입력된 얼굴과 인식과정을 모티터(Fig. 2.8) (Fig. 2.9)

링 할 수 있도록 구현한 과정으로 모니터나 로 확인할 수 있다CCD LCD .

는 하기 위해 처리된 에지영상을 보인 것이며(Fig. 2.9) Labeling 1_Line Threshold Level

은 이었을 때가 가장 노이즈가 적게 나타나고 에지가 잘 형성됨을 확인하였다 여기에'80' .

나타난 이미지는 얼굴 영역을 찾기 위한 에지이미지로서 노이즈를 제거한 후 눈 눈썹 코, , ,

입과 같은 필요한 에지에 번호를 부여하는 과정을 거치게 된다 이와 같은 과정을Labeling .

거친 후 눈과 눈썹을 인식하는 과정이 뒤따른다 또한 프로세서에서 눈을 인식하였다면 얼.

굴 영역의 좌표를 추출하게 되고 원 영상에서 얼굴영역을 찾아 전처리 및 인식과정을 수행

하게 된다.

나 라벨링.

라인처리

메모리의 첫 번째 라인은 을 이용하여 라벨 값을 매긴다 에 화소 값을 위(Fig. 2.6) . (X, Y)

치하게 한 후 값을 매기는 방법으로 좌표의 라벨값만을 확인 하는 것이다(X-1, Y) . (X, Y)

좌표에 화소 값이 존재하고 좌표에 라벨 값이 존재 할 경우에는 좌표의(X-1, Y) (X-1, Y)

라벨 값을 좌표의 화소 값에 매기게 되며 좌표에 라벨 값이 존재하지 않을(X, Y) (X-1, Y)

경우 즉 화소 값이 존재하지 않을 경우에는 새로운 라벨 값을 매기게 된다 마스크를 한, .

좌표씩 쉬프트 하면서 위와 같은 동작을 반복한다.

Page 52: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 52 -

두번째 라인부터는 을 이용하여 라벨 값을 매긴다 현재의 화소 값을 위치(Fig. 2.7) . (X, Y)

하게 한 후에 값들을 비교한다 에 화소 값이 존재 할 경우. (X, Y) (X-1, Y), (X-1, Y-1),

의 라벨 값을 확인한 후에 라벨 값이 존재 할 경우에는 그 좌표에 해(X, Y-1), (X+1, Y-1)

당하는 라벨 값을 에 매기게 되며 라벨 값이 존재하지 않을 경우 새로운 라벨 값을(X, Y) ,

좌표에 매기게 된다 마스크를 한 좌표씩 쉬프트 하면서 위와 같은 동작을 반복한다(X, Y) . .

근접 라벨 값 처리

라인처리에서 좌표에 화소 값이 존재 하고 마스크 좌표 내에 라벨 값이 개 이상 존(X, Y) , 2

재할 경우 즉 과 같은 경우에는 다음과 같은 동작을 수행한다(Fig. 2.10) .

(Fig. 2.10 Label Processing)

근접한 라벨 값의 크기를 비교한다(1) . (Fig. 2.10) (1 < 2)

현재의 좌표에 작은 라벨 값을 매긴다(2) .

라인처리를 중단하고 현재의 좌표부터 시작 좌표까지 한 좌표씩 쉬프트 라벨 값을(3) ,

하여 큰 라벨 값이 존재하면 작은 라벨 값 로 교체한다read (ex 2) (ex 1) .

시작 좌표에 도착하면 다시 중단된 좌표로 이동하여 라인처리를 반복한다(4) .

Page 53: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 53 -

다 눈찾기.

라벨 디텍트(1)

블록별 회로 설계O

INPUT CONTROL BLOCK

입력은 를 받게 되며 가 이면 에서 를RAS2, CAS2, WEN2, AD2 , RAS2 low ad2 ras address

입력으로 받게되며 가 이면 에서 를 입력으로 받는다, CAS2 low ad2 CAS ADDRESS . CAS2

가 일 때는 신호도 이므로 를 입력받음과 동시에 값을 입low wen2 low cas address label

력으로 받게 된다.

LVC(LABEL VALUE COMPARATOR GENERATOR) BLOCK

은 에서 입력받은 및 와LVC BLOCK INPUT CONTROL BLOCK RAS CAS ADRESS

값을 이용하여 의 를 발생하는 블록으로 조건이 까지이LABEL SDRAM ADDRESS 1 255∼

다 각 값에 해당하는 는 개의 가 된다 이는 가 최대일. LABEL ADDRESS 4 ADDRESS . RAS

경우와 최소일 경우 가 최대일 경우와 최소일 경우의 를 저장하기 위한 것, CAS ADDRESS

이며 각 값에 따른 내부 의 가 할당되어 있으므로 코, LABEL FPGA RAM ADDRESS , VHDL

딩 시에 모든 조건을 기술하여야 하는 어려움이 있다.

Page 54: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 54 -

MEMORY CONTROL BLOCK

은 내부 을 하기 위한 으로MEMORY CONTROL BLOCK FPGA EAB CONTROL BLOCK

에서 한 를 사용하여 을 하며 의LVC GENERATE ADDRESS SRAM CONTROL , COUNTER

에 맞게 읽기와 쓰기를 반복하는 회로이다COUNT .

SOC(SDRAM OUT CONTROL) BLOCK

은 을 할 경우에 데이터 값을 하는 블록으로 같은 중SOC BLOCK SRAM READ CONTROL

복된 값이 입력으로 들어왔을 경우에 저장되어있던 기존의 데이터를 하여LABEL READ

입력된 값의 를 비교하기 위한 블록이다LABEL ADDRESS .

COM_MAX & COM_CAS BLOCK

으로서 입력된 와 에서 한 를 비COMPARATOR BLOCK ADDRESS SRAM READ ADDRESS

교하여 최대 및 최소 값을 찾는 으로 기존의 에 저장되어 있는 값BLOCK SRAM ADDRESS

보다 입력된 값이 작거나 큰 경우에는 입력된 를 에 저장하기 위한ADDRESS DATA SRAM

이다BLOCK .

Page 55: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 55 -

결과O Simulation

(Fig. 2.11 Label Detect Result(1))

(Fig. 2.12 Label Detect Result(2))

Page 56: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 56 -

눈 찾기 부분의 회로 구조(2)

전체적인 블록도O

(Fig. 2.13 Face Detect Block Diagram)

구현한 눈 찾기 부분에 대한 전체 구성을 살펴보면 클럭 분주 제어회로 및 어드레스 생성,

을 위한 카운터회로 의 어드레스 하위 에 따라 최대 최소, SRAM 2 bits RAS , RAS , CAS

최대 최소를 얻기 위한 회로 눈 크기의 후보 값들을 결정하기 위한, CAS De-multiplexer ,

비교 회로 눈 크기의 후보 값들과 최대 값과 최소 값의 차 최대 값과, RAS RAS , CAS

최소 값의 차를 저장하기 위한 눈의CAS 22bits 256-word Single-Port Block Memory,

후보로부터 실제 눈 부분을 찾기 위한 비교기 부분으로 구성된다.

Page 57: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 57 -

블록별 회로 설계O

외부 의 어드레스 생성을 위해 의 카운터 회로를 이용하였22bits 1024-word RAM 9 bits

고 눈의 후보 값들과 최대 값과 최소 값의 차 최대 값과 최소 값의, , RAS RAS , CAS CAS

차를 저장하기 위한 의 어드레스 생성 및22bits 256-word RAM 22bits 256-word RAM

의 클럭 생성을 위해 카운터 회로를 이용하여 을 분주 하여 메모리의 클럭으로 발54MHz 4

생시켰고 조합논리호로를 사용하여 클럭 출력을 디코딩하여 제어신호들을 발생 하였다, .(Fig

는 카운터와 제어부의 블록도를 보이고 있다2.14 ) .

(Fig. 2.14 Counter & Controller Circuit)

및 비교기 설계De-multiplexer

는 의 어드레스 번지에는 하위 값이De-multiplexer SRAM 22bits 1024-word RM 2bits

일 경우는 값의 최대 값과 값 일 경우는 값의 최소 값과"00" RAS CAS , "01'' RAS CAS

값 일 경우에는 의 최대 값과 값 일 경우에는 의 최소 값과, "10" CAS RAS , "11" CAS RAS

값이 저장 되어 있다 의 어드레스를 증가 시키면서 어드레스의 하위 값에 따. SRAM 2 bits

라 각각의 경우에 따라 의 값들을 을 통해 선택하게 된다SRAM De-multiplexer .

Page 58: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 58 -

어드레스를 증가 시키면서 으로부터 읽어 들인 개의 값들중 눈의 후보 값들을 선택SRAM 4

할 수 있게 비교기에서 비교하게 된다 눈의 크기 눈썹의 크기는 사람의 평균적인 크기인. ,

가로축 세로축 를 크기를 지정한다 눈 후보 값들의 선택은 다음과 같32<x<128, 8<y<32 .

은 방법으로 선택된다.

설계22bits 256-word Single-Port Block Memory

눈 크기의 후보 값들과 최대 값과 최소 값의 차 최대 값과 최소 값의RAS RAS , CAS CAS

차를 저장하기 위해 의 인 를 생성FPGA EAB 22bits 256-word single-port block memory

하여 사용하였다 눈의 후보로 선택된 값들은 다음 개 메모리에 저장된다. 6 .

비교기 설계

눈 후보의 값들을 에 한 다음에22bits 256-word single-port block memory write read

로 한 다음 눈의 후보 값들 중 실제 눈을 찾는다mode .

화면상의 눈의 위치는 평균적으로 다음과 같은 값에 있다면 눈의 후보 값들 중 실제 눈이라

고 가정한다.

Page 59: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 59 -

(Fig. 2.15 Eye Detect Example)

결과O Simulation

입력 영상은 방식으로 저장되므로 데이터 처리는 방식으로 처리하interlacing interlacing

게 된다 따라서 얼굴 부분이 들어오는 윤곽선의 크기는 아래그림 의 범위와 같고 그 범위. 4

안에 눈썹과 눈이 위치하게 된다 눈썹과 눈의 크기는 눈과 눈썹의 평균적인 크기인 다음.

값으로 가정한다.

는 눈 눈썹의 가로 길이32 <x < 120 : x ,

는 눈 눈썹의 세로 길이8 < y < 32 : y ,

이 범위 안에 있는 눈과 눈썹 크기에 해당하는 임의의 값을 입력으로 눈의 양쪽 끝 좌표를

검출 하는가를 시뮬레이션을 통하여 검증하였다.

Page 60: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 60 -

시뮬레이션에서 양쪽 끝점의 좌표는 과 이다 는 시뮬레이션(235,91) (555,94) . (Fig. 2.16 )

결과로 두 눈의 양쪽 끝점의 값 검출을 보이고 있다.

(Fig. 2.16 Eye point Of Simulation Input)

-

(Fig. 2.17 Eye Detect Simulation Result)

Page 61: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 61 -

라 얼굴 회전.

눈 찾기 블록 눈을 찾으면 회전 블록으로 양 눈의 좌표 그리고 좌표와(x1,y1) (x2,y2)

신호를 보낸다enable .

회전 부분에서는 양 눈의 좌표를 받아 각도를 구한 후 그 각도에 맞게 얼굴을 회전시킨다.

회전된 얼굴은 정규화 되어 축소된다 은 안에 구현 하였다. sin, cos Rom Table FPGA chip .

(Fig. 2.18 Face Rotation Block Diagram)

Page 62: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 62 -

(Fig. 2.19 Face Rotation Block Diagram)

Page 63: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 63 -

결과O Simulation

처음 눈 좌표가 들어오면 연산하여 각도를 구한다 연두색 부분 각도를 구하면 본 영상( ) ,

데이터를 읽어 와서 붉은색 부분 영상 좌표를 회전 후 다시 에 저장 한다 파랑색( ) SDRAM .(

부분)

(Fig. 2.20 Face Rotation Simulation Result)

마 얼굴 축소.

블록별 회로 설계(1)

블록O PRE-BUFFER

입력 신호가 로 입력되면 눈끝 좌표를 에 저장한다HIGH BUFFER .

Page 64: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 64 -

눈끝 좌표의 입력 순서는 이다RAS_LEFT, CAS_LEFT, RAS_RIGHT, CAS_RIGHT .

블록O IMAGE SIZE OPERATION & COMPARATOR

입력된 두 눈 끝 좌표를 이용하여 이미지의 가로 를 계산한다 연산된 가SIZE . IMAGE SIZE

보다 크면 근접 촬영 로 인식 신호를 발생한다253 ERROR CANCEL .

블록O SCALE FACTOR OPERATION

가 입력되면 우선 를 사이의 수와 비교를 한다IMAGE SIZE MAGE SIZE 63 65 . IMAGE∼

가 사이에 있으면 이미지 축소를 하지 않고 바로 에 저장한다 이미지SIZE 63 65 SDRAM .∼

사이즈가 보다 크면 를 연산한다65 SCALE FACTOR .

축소 이미지 크기인 에 맞는 를 구하기 위하여 를64 * 64 SCALE FACTOR IMAGE SEE

로 나눈다 출력은 실수 를 출력한다64 . 10BIT .

블록 및 블록O COUNTER COUNTER CONTROL

총 개의 가 필요하다 개의 카운터는 코드 에서 한다4 COUNTER . 4 VHDL CCC CONTROL .

의 은 에서 를 읽어드리는 시간으로서MEMORY COUNTER 16 SDRAM DATA clock 54MHz

를 이용하므로 를 로 했을 경우에 클럭에 개의 데이터를 읽어오며 양선형burst length 2 8 2 ,

보간을 이용할 경우에 주변 개의 화소가 필요하므로 클럭이 필요로 하게 된다4 16 .

Page 65: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 65 -

는 축소이미지의 크기인 를 하는 이다 의 이RAS COUNTER 64 COUNT COUNTER . 64 * 64

미지를 얻어내야 하므로 및 의 가 필요로 하게 된다RAS CAS 64 COUNTER .

좌표 연산 블록O READ MEMORY

좌표연산이란 앞단에서 구해진 축소율 을 이용하여 다음 연산을 수행하는 것이다(1/sp( )) .

좌표x = ras * (1/SF) (2-2)

좌표y = cas * (1/SF) (2-3)

코딩을 수행하는 중 양선형 보간 알고리즘의 코드로는 이미지의 일부영역을 축소할 수c

없음을 발견하였다 전체 이미지 중 양쪽 눈 끝의 값이 일 경우를 예로 들면. ras 100,300

위의 식 에서 가 최대 일 경우 식대로 계산을 하면 첫 번째 좌표부ras * (1/sp) (1/sp) 3.xxx

터 값이 을 넘어가므로 적용할 수 없다 결론은 식에서 값을 에서 까지 증가시키300 . ras 1 64

면서 곱하여 좌표값을 구한 후에 구해진 좌표 값에 값을 더하면 이미지의 일부영역을ras

축소할 수 있다.

좌표 연산 블록O WRITE MEMORY

좌표 연산도 좌표 연산과 유사하다WRITE MEMORY READ MEMORY .

Page 66: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 66 -

가 일 경우는 를 로 하여 를 한다 즉PASS '1' BURST LENGTH 2 READ DATA WRITE .

는 번지부터 씩 증가하며 는 부터 씩 증가하면서 를RAS DATA 0 1 CAS DATA 0 2 DATA

한다 가 일 경우는 가 이 되며 연산된 결과 화소값을WRITE . PASS '0' BURST LENGTH '1'

차례대로 를 씩 증가하여 까지 하며 이 되면 가 증가하RAS 1 63 WRITE 63 CAS ADDRESS 1

여 또 가 까지 하는 방식으로 가 가RAS 63 WRITE CAS ADDRESS 63, RAS ADDRESS 63

이 될 때까지 반복해서 한다WRITE .

연산 블록O INTERPOLATION

가 일 경우 동작하게 되며 다음과 같은 식을 연산하게 된다PASS '0' .

EWTOP = NW + (NE - NW)*EWWEIGHT (2-4)

EWBOTTOM = SW + (SE - SW)*EWWEIGHT (2-5)

DEST_PIXEL=EWTOP+(EWBOTTOM-EWTOP)*NSWEIGHT (2-6)

및 은 수평방향으로의 차 차 보간식이며 은 수평방EWTOP EWBOTTOM 1 , 2 , DEST_PIXEL

향 차의 보간 결과 값을 이용하여 수평방향 보간을 구한 최종 출력 값이 된다1, 2 .

Page 67: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 67 -

블록O READ MEMORY CONTROL

블록은 에 맞게 동작을 수행한다 처음 진 카운READ MEMORY CONTROL COUNTER . 16

터가 카운트 될 동안에는 을 하기 위한 및SDRAM CONTROL MRS SETTING AUTO

를 실행하며 다음 가 이면 어드레스를 입력하며 일 때REFRESH , MEM COUNTER 1 RAS , 3

를 입력하고 가 와 일 때에 에서 값을 하며CAS COUNT COUNT 5 6 SDRAM READ COUNT

가 일 경우에는 를 실행한다 가 이면 가 동작하6 PRECHARGE . RAS COUNT 64 ACOUNTER

며 가 이면 를 실행한다ACOUNTER 2 AUTO REFRESH .

블록O WRITE MEMORY CONTROL

블록은 블록과 같이WRITE MEMORY CONTROL READ MEMORY CONTROL MEM

및 로 동작하게 되며 가 일 경우에는 진 카운COUNTER RAS, CAS COUNTER , PASS ‘1’ 16

터가 한번 동작할 동안 개의 를 하며 가 일 경우에는 진 카운터4 DATA WRITE , PASS '0' 16

가 한번 동작할 동안에 개의 를 저장한다1 DATA .

가 이고 가 이면 가 동작하며 마지막RAS COUNTER 63 CAS COUNTER 64 ACOUNNTER ,

가 동작할 경우에는 를 해야 하므로 를 사용하ACOUNTER DATA WRITE 3BIT COUNTER

여 마지막 는 처리하게 되며 마지막 가 동작한다AUTO REFRESH , AUTO REFRESH .

Page 68: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 68 -

시뮬레이션 파형(2)

(Fig. 2.21 Face Shrink Result)

파트2. PCA & SVM

가. PCA

Training Set : Γn, n=l, . . . , M

여기서( Γn은 안에 있는 각각의 얼굴영상을 나타낸다 그 다음 의training set .) training set

를 구한다average face( ) .Ψ

Page 69: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 69 -

(Fig. 2.22 PCA Block Diagram)

원 영상에서 를 뺀 라는 벡터를 구한다 이렇게 얻어진 라는average face i (= i- ) . iΦ Γ Ψ Φ

벡터를 이용해서 공분산 행렬 을 만드는데 그 식은 다음과 같다(covariance) .

이 공분산 행렬(N2×N2 에서 데이터의 분포를 가장 잘 표현하는 의 벡터) M orthonormal un

과 이와 관련된 고유값 를 구한다 관련된 고유값은 영상 간의 을 특징짓는데k . variationλ

있어서 그 값의 유용성에 따라 크기 순으로 정렬된다 이렇게 얻어진 고유벡터들을 으. N×N

로 재배열하여 나타내면 얼굴형상과 닮아보이므로 고유 얼굴 이라고 불리 우고(eigenfaces) ,

이 고유 얼굴은 플래쉬 롬에 저장된다.

Page 70: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 70 -

얼굴 인식에서 테스트를 위한 입력 얼굴이 들어올 경우 은 이 의 데PCA Module eigenface

이터와 입력 얼굴과의 차를 구하여 서로 내적함으로써 주성분들을 추출한다 이(Fig 2.23).

때 학습과 인식 모드의 결정은 의 키패드 작동에 의해 마이컴 신호를 입력함으로써 처user

리된다.

를 통해 생성된 주성분들은 로 정규화되어 플래쉬 롬에 저장되고 이것은 다시PCA [-1 1] ,∼

의 입력으로 사용되게 된다 여기서 시스템의 메모리와 속도가 주성분의 개수에 의해SVM .

결정되므로 적절한 주성분의 개수를 선택하는 것이 필요하다 본 시스템에서는 실험을 통, .

해서 가장 좋은 인식률을 보인 개의 주성분을 사용하였다183 .

연산을 하드웨어로 구현 하는데 있어 연산의 효율성을 높이기 위해 필요한 데이터를PCA ,

저장하고 불러오는 메모리 인터페이스 모듈이 필요하다 를 이용한 얼굴 특징 추출 방. PCA

법은 학습 영역과 실험 영역 두 영역으로 나뉘는데 먼저 학습 영역에서 추출된 얼굴영상과,

평균영상 고유 얼굴 그리고 학습된 주성분 들을 각각 플래쉬 롬에 저장(Mean Vector), , (PC)

한다 실험영역에서는 테스트 영상으로부터 평균영상을 뺀 차영상과 플래쉬 롬에 저장되었.

던 고유 얼굴을 내적하여 테스트 영상에 대한 주성분을 추출한다 여기서 추출된(Fig.2.44).

학습영상과 테스트 영상에 대한 주성분들을 본 시스템에서는 각각 의 입력으로 사용하SVM

였다 이렇게 추출된 주성분들을 가지고 실험하여 에서와 같이 학습 및 테스트. Fig. 2.25

영상에 대한 값을 비교하였다 이 실험을 통해서 를 사용하여 차원을 줄인feature . PCA

값들이 학습 영상과 테스트 영상 사이에 큰 차이를 보이지 않으므로 인식을 위해서feature ,

값들이 잘 추출되었음을 보여준다고 할 수 있다feature .

Page 71: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 71 -

Fig. 2.23 PCA feature extraction

Fig 2.24 PCA Memory I/O Module Block Diagram

Page 72: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 72 -

Fig. 2.25 Comparison of features of training image and testing image

나. SVM

은 을 기반으로 하여 을 학습시킨 후 학습에 이용되지 않SVM empirical data set machine

은 새로운 가 입력으로 들어올 때 올바른 답을 도출해내는 을 말한다 이러한data system .

에서는 학습에 이용한 의 품질과 수량이 학습된 의 성능에system training dataset machine

중요한 기본 조건으로 작용하게 된다 하지만 관찰과 경험을 통해 수집할 수 있는 데이터의.

양은 유한하며 추정하고자 하는 의 분포를 효과적으로 반영하지 못할 수, objective function

있다는 문제점이 있다 또한 의 메모리 용량에 따라 보드 구성시. FPGA chip training data

의 크기가 작은 문제점이 있다set .

보드 구현 시 에서는 에서 까지의 을 해석해내는 작업을 수FPGA simulation 0 4 image data

행하게 된다 는 일반적인 멀티클래스 의 구조를 나타낸다 또한 는. Fig. 2.26 SVM . Fig. 2.27

을 기반으로 로 구현한 의 을 나타낸 것이다Fig. 2.26 FPGA SVM block diagram .

Page 73: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 73 -

(Fig. 2.26 Architecture of suport vector machines)

(Fig. 2.27 FPGA SVM Block Diagram)

Page 74: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 74 -

에서 의 과 을 구체적Fig. 2.27 FPGA SVM block diagram training block recognition block

으로 나타내면 다음과 같다 먼저 은 다음과 같이 구현하였다 우선. training block . Fig.

을 다음과 같이 의 형태로 쓸 수 있다2.43 matrix notation .

여기서 qij = qji = yiyjK ( xi, xj 이고 최적화 조건은 다음과 같다), c=-1 ·

의 은 위의 문제를 푸는 것과 같으므로 문제를 풀SVM training QP (Quadratic Problem) QP

면 다음과 같은 결과를 얻는다.

식 은 다음과 같이 간략화 할 수 있다2-11 .

은 식 를 이용하여 의 일반적인 구조를 나타낸 것이다Fig. 2.28 2-12 training block .

Page 75: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 75 -

(Fig. 2.28 An architecture for SVM training)

또한 에서의 과 의 구조는 식 의 과 을 이용하여 다음과 같이 구현하Fig. 2.28 M r (2-12) M r ,

였다.

(Fig. 2.29 A specialization of M)

(Fig. 2.30 A specialization of r)

한편 은 입력된 를 이용해서 각 를 하는recognition block training data class classify

을 추정해 낸다 그렇게 추정된 는 과정에서 이용되지 않은target function . classifier training

새로운 에 대해서도 올바른 결과 값을 낼 수 있는data sample generalization

가 뛰어 나야 한다performance .

Page 76: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 76 -

일반적인 은 해당 개의 을 구성해서 해결할 수 있지만N-ary classification (N-1) SVM

구현에서는 만을 사용하여 구현하였다FPGA 4-ary classification

(Fig. 2.31 4-ary classification)

마이컴 부3.

(Fig. 2.32 Micom Block Diagram)

Page 77: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 77 -

(Fig. 2.33 Key Pad)

(Fig. 2.34 Key Pad Control)

얼굴인식과정을 모니터에 디스플레이하는 시스템은 블럭이 담당하고 있다 이 블럭OSD . OSD

은 마이컴과 인터페이스 되도록 설계되어 있어 사용자의 에 의해 학습 및 인식Key Control

과정을 제어할 수 있도록 하였다

Page 78: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 78 -

제 장 성능 및 평가3

제 절 얼굴인식 시스템 성능 테스트1

알고리즘 성능 테스트1.

본 과제의 시스템은 실내 환경에서의 얼굴 인식을 목표로 한다 이는 기존의 얼굴 인식 시.

스템의 평가와는 다른 환경을 가진다 따라서 본 시스템의 정량적인 평가를 위해서 객관적. ,

으로 공인된 데이터베이스와 실험 환경을 이용하여 테스트하였다 실험 결과에서 사용된 데.

이터 베이스는 영국의 서레이 대학에서 제공하는 데이터 베이스를 사용하(Surrey) XM2VTS

였다 데이터 베이스 내의 명의 사람들에 대해서 각 사람들당 장의 영상을. XM2VTS 296 , 8

실험에서는 사용하였다[XM2].

각 사람들당 장의 영상들은 각기 다른 상황과 다른 조명하에서 촬영된 것으로서 자연스러8

운 포즈 시간 변화에 따른 옷이나 머리모양의 변화 등에 대한 실험도 함께 반영되었다 다, .

음 그림은 데이터베이스의 한 예이다XM2VTS .

(Fig. 3.1 XM2VTS DB Example)

Page 79: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 79 -

본 과제의 시스템에 적용된 얼굴 인식 기술을 테스트한 결과는 다음 그림과 같다 보이는.

실험치는 오인식률 과 오거부율 을 함께 나타낸(False Acceptance Rate) (False Reject Rate)

것으로 그래프에서 보이듯이 은 임계값 에서 를 가지며 임계값이 인 경EER 0.97 0.6% , 0.93

우 이 일때 은 를 보이고 있어서 세계적 수준의 시스템들 이상의 성능FAR 0.1% , FRR 0.98% ,

을 보여주고 있다.

(Graph 3.l Experimentation Result)

Page 80: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 80 -

성능 테스트2. FPGA board

과 는 학습과 인식결과를 모니터링 한 것이다 과 같이 사용자(Fig. 3.2) (Fig. 3.3) . (Fig.3.2)

의 얼굴 입력 과정 학습과정 은 사용자의 를 입력하고 카메라를 바라보았을 때 자신의 얼( ) ID

굴을 모니터로 확인할 수 있으며 자신의 얼굴이 저장된 원영상 에지 상태 눈 인식 과정, ,

축소 과정 그리고 학습완료 신호를 한눈에 확인 할 수 있어 사용자의 얼굴 데이터를 정확히

입력될 수 있도록 설계하였다 는 인식 결과를 보인 것으로서 학습과정과 동일한. (Fig.3.3)

화면을 모니터링 할 수 있으며 얼굴인식과정이 정확히 이루어지는지를 모니터로 확인할 수

있도록 구현하였다.

(Fig. 3.2 Face Recognition & Original Edge)

Page 81: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 81 -

(Fig. 3.3 Face Study & Original Edge)

기반의 얼굴인식 시스템은 시스템에서 현저히 속도가 개선되었음을 확인하였다 또PC DSP .

한 로 구현하였을 경우에는 일부 전처리 과정에서 기반 시스템보다는 수행속도가FPGA DSP

다소 오래 걸리긴 하였지만 기반의 시스템보다는 현저히 속도가 향상되었고 및PC PCA

처리 구간은 기반의 시스템보다도 월등히 속도가 개선되었음을 확인 할 수 있었SVM DSP

다.

(Table. 3.l Average Time Requirement Of Each Module)

이러한 현상은 의 내부 데이터 처리 및 연산 부를 병렬적으로 수행하도록 설계하였기FPGA

때문이다 특히 얼굴 인식 전용 하드웨어의 경우 연산의 특성상 다차원 행렬의 연산이 주를.

이루게 된다.

Page 82: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 82 -

따라서 메모리와 연산의 속도의 효율성을 위해서 본 과제에서는 행렬 연산을 위한 모듈을,

따로 구성하여 각 처리부에서 사용하도록 설계되었다 이 행렬 연산 모듈은 메모리 억세스, .

부분과 곱하기 더하기의 병렬처리 부분으로 구성되어 효율적인 메모리 억세스 시간과 빠른/ ,

연산을 통하여 얼굴 인식 과정의 전반적인 속도를 증가시킬 수 있었다 이를 이용하여 전, .

처리부와 및 부를 일부 병렬적으로 수행하도록 설계 되어있으므로 기반의PCA SVM FPGA

총 동작 수행 속도는 이내로 실시간에 적합한 속도를 보였다0.46/s .

의 메인동작주파수는 이며 주파수를 높였을 경우에 일부 연산부를 제외한 데이FPGA 54Mhz

터 및 메모리 제어부에서 처리속도를 높일 수 있게 되어 전체적인 얼굴인식 시스템의 동작

속도가 더욱 개선될 것이다.

따라서 기반의 시스템 환경에서 의 임베디드 시스템환경으로의 전환 과정을 통해PC FPGA

시스템의 동작속도를 월등히 개선시킬 수 있었다.

또한 인식 성능에 대한 정량적인 평가를 위하여 실영상의 캡춰를 통해 실험을 하였다 이, .

는 사용자의 도움을 받아 모니터상에 표시된 사각형안에 얼굴이 있다는 가정하에 실험되었

으며 는 사각형안에서 정확한 얼굴의 위치를 찾아내게 된다, FPGA .

앞서 기술된 얼굴 찾는 방법을 통해 얼굴을 정규화하고 방법을 통해 특징을 추출하, PCA ,

였다 특징 추출 단계에서 의 게이트수를 최소화하기위해서 시스템에서 앞서 실. , FPGA DSP

험되었던 고유 얼굴의 개수를 사용하여 메모리의 용량과 성능을 모두 고려하여 시행되었, ,

다 실제 카메라를 통한 세계적인 비교 자료는 없으므로 자체적으로 여러 환경에서 실험을. ,

하였다 기본적으로 각 실험당 회씩의 인식을 시도 하였으며 조명의 변화 포즈의 변화. 100 , ,

를 고려하여 시행된 결과는 다음과 같다.

Page 83: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 83 -

(Table. 3.2 Experimentation Result With Changing pose)

(Fig. 3.4 Graph of Experimental Result)

위 결과는 얼굴 데이터베이스를 이용한 실험과는 많은 차이를 보이고 있다 이는 실제 영상.

은 데이터 베이스의 사진에 비해서 많은 차이가 있기 때문이다 등록된 영상과 새로 입력되.

는 영상과의 카메라의 종류에 따라서 색도 광각 정도 조명의 변화 시간의 변화 등 많은, , , , ,

요소들이 존재하기 때문이다 본 실험에서는 태양 조명이 들어오는 실내 환경에서 인위적인.

제한 조건을 변화시키면서 시행되었다.

Page 84: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 84 -

태양 조명을 포함한 전체 조명이 비추어 지는 상황에서 전구 불빛 형광등 불빛 조명을 이, ,

용한 국부적 조명 방향 실험 등이 이루어 졌으며 포즈의 변화는 좌 우 도 까지 실험, / 0 30∼

되었다 결과적으로 정도의 인식 성능을 보이고 있으며 이는 여러 가지 요인에. 70 90% ,∼

의해서 기인하였다 그러나 실제 상용화 제품에서의 특화된 조건에 적응하도록 설계된다면. , ,

좋은 성능을 보일 것으로 예측된다 예를 들어 도어락 시스템의 경우 조명과 배경의 고정. ,

이 전제되므로 이를 해결하기 위한 메모리와 속도를 인식 성능의 개선으로 사용할 수 있으,

므로 학술적인 얼굴 인식 시스템의 성능에 근접할 수 있을 것이다, .

Page 85: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 85 -

제 절 평가 및 향후 계획2

얼굴 인식 칩의 시장은 매우 다양하다 이 시스템은 범죄자 색인이나 사용자 인증 분야에도.

널리 쓰일 수 있다 따라서 시장은 열려 있는 상황이나 기술 및 투자 유치의 어려움으로 현.

재 까지 시장이 열리지 않는 상황이다 본 시스템은 상에서 개발된 열굴 인식시스템을. PC

하드웨어로 구현을 한 것이다 위에서 보았듯이 상에서 개발되어 있는 알고리즘의 성능. , PC

은 유지하면서 인증 속도 및 크기 등의 문제를 해결할 수 있는 시스템을 설계하였다.

상에서 제안 설계되었던 알고리즘을 을 사용하여 설계하고PC VHDL , FPGA Foundationㆍ

을 사용하여 및 시뮬레이션을 거쳐 사의Express Tool Function Timing Xilinx

을 사용하여 실제 시스템을 설계하였다 메인 주파수를 를 사용XC2V1000FG-456 . 54MHz

하여 실험결과를 나타내었다 실제 나 와 같이 높은 주파수를 사용하면 인증시간을. PC DSP

더욱 줄일 수 있을 것으로 사료된다 또한 과정을 통하여 저렴화 소형화 시스템으로. , ASIC ,

구현할 수 있을 것이다.

본 시스템은 상에서의 알고리즘을 하드웨어로 구현을 한 것이다 차후 임베디드 형태의PC .

시스템을 구현 실제 적용하여 필요한 부분에 대해 보완 화를 통하여 얼굴 인식 시스템ASIC

을 저렴화 소형화시킴으로써 지능형 장난감 도어락 시장 등 많은 활용분야에 적용시킬 수, ,

있을 것이다 이를 위해서는 국가 및 업계 차원의 데이터 의 표준화가 필요하다, API .

Page 86: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 86 -

참고문헌

[Turk91] M. Turk and A. Pentland, "Eigenfaces for Recognition," J. Cognitive

Neuroscience, Vol. 3, No. 1, 1991, pp. 71-86.

[Pent193] A. Pentland, T. Starner, N. Etcoff, N. Masoiu, O. liyide and M. Turk,

"Experiments with Eigenfaces," Proc. of Looking at People Workshop Int'1 Joint

Conf. on Artificial Intelligence, August, 1993.

[TI02] http://www.ti.com

[FRVT00] http://www.frvt.org/DLs/FRVT_2000.pdf

[XM2] http://www.ee.surrey.ac.uk/Research/VSSP/xm2vtsdb/

[Vapnik95]V. Vapnik, "The Nature of statistical Learning Theory," Springer-Verlag,

New York,1995.

[Cristi00] N. Cristianini, "An introduction to Support Vector Machines and other

kernel-based learning methods," Cambridge, MIT Press,2000.

[Smola98] B. Schölkopf, C.J.C. Burges and A.J. Smola, "Advances in kernel

methods-support vector learning," Cambridge, MIT Press, 1998.

[Wiskott97] L. Wiskott, J.-M Fellous, N. Kruger, and C. von der Malsburg, "Face

Recognition by Elastic Bunch Graph Matching," IEEE Trans. on RAMI, Vol.19, No.17,

July 1997, pp. 775-779.

[Penev96] P.S. Penev and J.J. Atick "Local Feature Analysis: A General Statistical

Theory for Object Representation," by Network: Computation in Neural Systems

Vol.7, No.3, 1996, pp. 477-500

[Mog96] B. Moghaddam, C. Master and A. Pentland, "Bayesian Face Recognition

Using Deformable Intensify Surfaces," Proc. of IEEE Conf. on Computer Vision &

Pattern Recognition, San Francisco, USA, June 1996.

Page 87: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 87 -

유명현 박정선 양희덕 이상웅 얼굴 인식 기술의 연구 현황 및 구현 사례[Mhyoo02] , , , , '' ,''

한국 통계 학회 가을 학술발표회 논문집 대전, , 2002

이성환 이미숙 얼굴 영상 인식 기술의 연구 현황 대한전자공학회지 제[Mslee96] , , " ," , 23

권 제 호 년 월6 , 1996 6 , pp. 688-702.

Page 88: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 88 -

부 록

얼굴인식 시스템 회로도1.

회로도이다 에는 전처리부를 설계하였고 에는FPGA Test Board . FPGA A , FPGA B PCA

및 알고리즘을 설계하였다 에서 및 를 제어하고 를 제어SVM . Micom Encoder Decoder OSD

한다.

와 는 각각 개의 을 가지고 있고 개의 을 공용으로 사용FPGA A FPGA B 2 SDRAM 2 SDRAM

하고 있다 두개는 개의 을 설정하여 를 주고받도록 설계를 하. FPGA 35 Interface Pin Data

였다.

Page 89: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 89 -

(Fig. A. Power Part)

Page 90: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 90 -

(Fig. B. Micom Part)

Page 91: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 91 -

(Fig. C. FPGA A SDRAM Part)

Page 92: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 92 -

(Fig. D. Decoder Part)

Page 93: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 93 -

(Fig. E. FPGA A Part)

Page 94: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 94 -

(Fig. F. Encoder Part)

Page 95: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 95 -

(Fig. G. FPGA B Part)

Page 96: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 96 -

(Fig. H. FPGA B SDRAM Part)

Page 97: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 97 -

(Fig. I. FPGA A & FPGA B Interface SDRAM)

Page 98: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 98 -

기술개발결과 요약표

기술개발결과 내역○

구분

총참여인력

국내특허 국제특허 논문시제품 S/W

기타기술문서( :

등TM,TD )(M/Y) 출원 등록 출원 등록SCI,SSCI

국제학술

국내학술

차년도17.8(M/Y)

1

차년도2

총계 명14 건 건 건 건 건 건 건 건1 건

지적재산권 명세 반드시 기입 요망( )○

구분 제 목 성명 국명 출원번호 출원일 등록번호 등록일 비고

국내외 특허 실용신안 의장등록 저작권 컴퓨터프로그램보호권등으로 구분, , , ,※

Page 99: 최종연구개발결과보고서 - ITFIND · 제 장성능및평가3 제 절얼굴인식시스템성능테스트1 1.알고리즘성능테스트 2.FPGAboard성능테스트 제 절평가및향후계획2

- 99 -