이하에서는 본 발명의 구체적인 실시 예를 도면을 참조하여 상세히 설명하도록 한다.
도 1은 본 발명의 3차원 정보를 이용한 얼굴 인식 장치를 도시한 것이다.
도 1을 참조하면, 본 발명의 3차원 정보를 이용한 얼굴 인식 장치(100)는 사람의 얼굴(110)을 촬영하는 촬상부(120), 이미지 입력부(130), 컨트롤러(140) 및 저장부(150)를 구비한다.
촬상부(120)는 얼굴(110)의 좌측에 위치하여 얼굴(110)을 촬영하고 얼굴의 이미지(이하, '좌안 이미지(left-eye image)'라 함)를 획득하는 제1 스테레오 디지털 카메라(121a) 및 얼굴(110)의 우측에 위치하여 얼굴(110)을 촬영하고 얼굴의 이미지(이하, '우안 이미지(right-eye image)'라 함)를 획득하는 제2 스테레오 디지털 카메라(121b)를 구비한다.
제1, 제2 스테레오 카메라(121a,121b)는 2개의 CCD(Charge Coupled Device) 카메라 또는 2개의 CMOS(Complementary Metal Oxide Semiconductor) 이미지 센서가 내장된 카메라를 스테레오(stereo) 방식으로 설치한다. 즉 제1, 제2 스테레오 카메라(121a,121b)는 서로 일정한 간격을 두고 사람의 양안(two eyes) 구조와 유사한 방식으로 설치되어, 얼굴(110)의 동일한 지점을 촬영하는 각도를 달리하여 촬영한다. 제1, 제2 스테레오 카메라(121a,121b) 사이의 간격은 렌즈의 초점거리, 카메라의 픽셀(pixel), 피치( pitch) 등에 따라 달라지지만 보통의 경우, 약 1~15cm의 범 위 내에 있는 것이 바람직하다.
이미지 입력부(130)는 디지털 카메라 칩(125)에서 출력된 이미지, 즉 좌안 이미지 및 우안 이미지를 입력 받으며, 입력된 좌안 이미지와 우안 이미지를 컨트롤러(140)에게 제공한다.
컨트롤러(140)는 특징부 추출부(141) 및 스테레오 정합 처리부(145)를 포함한다.
특징부 추출부(141)는 좌안 이미지 및 우안 이미지로부터 특징점(feature)을 추출하는 작업을 실시한다.
특징점(feature)은 수집한 3차원의 얼굴 정보 중에서 특징이 되는 부분을 의미하는데, 이를 테면 눈, 입, 코, 턱 등 얼굴의 윤곽을 특징적으로 나타내는 부분을 사용 한다. 눈과 입의 경우 선 추출(edge detection)과 같은 영상처리 알고리즘을 이용하여 그 위치를 파악하게 되고, 코와 턱 부위는 3차원의 형상 정보를 활용하여 그 위치를 파악하는 방법을 사용하여 특징점을 추출한다.
스테레오 정합 처리부(145)는 스테레오 정합(stereo matching)을 하기 위해 스테레오 정합부(145b) 만으로 구성 될 수 있지만, 보다 정교한 스테레오 정합(stereo matching)의 성능을 향상시키기 위해 스테레오 정합부(145b) 앞뒤에 전처리부(145a)와 후처리부(145c)를 각각 구비 하는 것이 바람직하다.
전처리부(145a)는 교정(rectification) 기능 및 좌우 영상의 독립적인 밝기 조절 등의 기능을 통해 카메라의 왜곡(distortion)을 최소함으로써 스테레오 정합의 성능을 향상시킨다. 또한 전처리부(145a)는 좌우 카메라의 물리적인 특성 차이 즉, 한쪽 카메라에게만 센 빛이 입력되는 현상 등으로 인해 발생되는 좌우 영상의 밝기 차이를 보정하기 위한 밝기 보정(brightness control) 기능을 갖도록 구성할 수 있다.
스테레오 정합부(145b)는 전처리부(145a)에서 처리된 좌우의 영상 입력으로부터 디스페리티(disparity)를 계산하여 이를 밝기 정보로 나타내는 분분이다.
스테레오 정합(stereo matching)은 한쪽 카메라의 영상 상의 임의의 패턴을 삼차원 공간상의 같은 지점으로 매핑(mapping) 되는 다른 카메라 영상에서 찾아내는 작업을 의미한다. 즉 스테레오 정합(stereo matching)은 두 장의 사진에서 서로 대응하는 점들(correspondence points) 을 찾아 서로 매칭 시키는 작업을 의미한다.
디스페리티 맵(disparity map)은 두 장의 사진에서 서로 대응하는 점들을 찾고 대응점 간의 길이를 숫자로 나타낸 지도를 의미하며, 디스페리티 맵의 영상은 카메라에서 가까울수록 밝게 표현되고, 멀수록 어둡게 표현된다.
후처리부(145c)는 스테레오 정합부(145b)에서 얻어진 디스페리티 맵(disparity map)에서 노이즈를 제거하고, 대응 점 간의 길이를 거리로 환산하여 얼굴의 간략화 된 3차원 개체 모델, 이를테면 와이어 프레임 모델을 형성하고, 이를 출력할 수 있도록 설계된다.
저장부(150)는 후처리부(145c)의 3차원 개체 모델, 이를 테면 와이어 프레임 모델(wire frame model)을 얼굴 인증 시 비교 데이터로 활용하기 위해 얼굴 데이터베이스에 저장한다. 저장부(150)는 에스램(SRAM) 또는 디램(DRAM)의 메모리를 사용 한다.
와이어 프레임 모델(wire frame model)을 형성하는 상세한 방법은 도5를 설명하는 부분에서 상세히 기술한다.
도 2는 본 발명의 스테레오 카메라를 이용하여 3차원적으로 거리 인식하는 원리를 설명하기 위해 도시한 것이다.
도 2 및 도1을 참조하면, 2개의 스테레오 카메라(121a, 121b)는 거리 b를 갖는 베이스 라인(base line)을 통해 배치된다. 2개의 스테레오 카메라(121a, 121b)의 각각의 렌즈(220, 230)는 각각 이미지 평면(image plane, 240) 상에 동일한 초점거리(f)를 갖는다.
이 경우 피사체(210)로부터 2개의 스테레오 카메라(121a, 121b)를 연결하는 베이스 라인(base line) 까지 거리(r)는 하기 [수학식1]로 표현된다.
[수학식1]
여기서, r은 피사체로부터 베이스라인까지 수직거리, b는 2개의 스테레오 카메라(121a, 121b) 사이를 연결하는 베이스 라인(base line) 거리, f는 2개의 스테레오 카메라(121a, 121b) 렌즈의 초점 거리이고, d는 피사체로부터 제1 스테레오 카메라(121a)를 통해 이미지 평면(240)에 투영된 지점으로부터 이미지 평면(240) 상의 초점 위치까지의 거리(dl)와 피사체로부터 제2 스테레오 카메라(121b)를 통해 이미지 평면(240)에 투영된 지점으로부터 이미지 평면(240) 상의 초점 위치까지의 거리(dr) 간의 차이(dl-dr)를 의미한다. 즉, 두 영상에서 매칭되는 위치 dl, dr을 구하면 피사체(210)의 수직 거리를 구할 수 있다.
도 3은 본 발명의 3차원 정보를 이용하여 얼굴을 인식하는 방법을 수행하는 과정을 대략적으로 도시한 것이다.
도 3 및 도1을 참조하면, 본 발명은 촬상부(120)를 통해 얼굴(110)의 좌안 이미지와 우안 이미지를 얻는 과정(a), 이미지 입력부(130)에서 좌안 이미지와 우안 이미지를 입력받은 후 특징점 추출부(141)에서 특징점을 추출하는 과정(b), 스테레오 정합 처리부(145)에서 스테레오 정합 작업을 실시하는 과정(c), 3차원 구조물로 변환하는 과정(d) 및 와이어 프레임 모델(wire frame model)을 생성하는 과정(e)을 차례로 갖는다.
상기 (a)~(c) 과정은 앞에서 설명한 바 있으므로 상세한 설명은 생략하고, 상기 3차원 구조물로 변환하는 과정(d)은 행을 바꾸어 도 4를 참조해서 이하 설명하며, 와이어 프레임 모델(wire frame model)을 생성하는 과정(e)은 도 5를 설명하는 부분에서 후술한다.
도 4는 본 발명의 3차원 구조물로 변환하는 과정을 상세히 설명하기 위해 도시한 것이다.
도 4를 참조하면, 3차원 얼굴위에 형성되는 좌표계를 '얼굴좌표계(F)'(이하 같다), 3차원 공간상의 기준이 되는 좌표계를 '기준 좌표계(W)'(이하 같다)라 표시할 경우, 이들은 하기의 [수학식2]와 같은 좌표 변환의 관계를 갖는다.
[수학식2]
Xw = RXF + T
여기서, Xw는 기준 좌표계(W)에서의 좌표값, XF는 얼굴 좌표계(F)에서의 좌표값, R은 회전 행렬(Rotation matrix), T는 병진 행렬(Translation matrix)을 각각 의미한다.
여기서, 수집된 3차원 얼굴을 소정의 위치와 방향으로 이동 및 회전 시키는 이유는 촬상부(120)에서 3차원 얼굴정보를 수집할 때 사용자의 얼굴(110)이 항상 일정한 위치나 방향에 있지 않기 때문에 얼굴 인증에 앞서 상기 [수학식2]를 사용하여 위치와 방향을 미리 정렬시키기 위함이다.
3차원 구조물로 변환하는 작업은 일정한 좌표 변환을 통해 사용자의 얼굴 좌표계(F)에서 구현된 특징점의 위치를 얼굴 인증 시 기준으로 사용되는 3차원 기준 구조물과 비교하기 위해 기준 좌표계(W)로 변환하는 작업을 의미한다.
도 5는 본 발명의 3차원 정보를 이용하여 얼굴 인식하는 방법을 플로우 차트로 나타낸 것이다.
도 5를 참조하면, 본 발명의 3차원 정보를 이용하여 얼굴 인식하는 방법(500)은 대략 (1) 얼굴 인증 시 기준으로 사용되는 3차원 기준 구조물(이하, '기준 벡터'라 함)을 입력된 얼굴 이미지로부터 형성하는 단계(510a) (2) 얼굴 인증 시 상기 기준벡터와 비교하기 위해 3차원 사용자 구조물(이하'사용자 벡터'라 함)을 입력된 사용자의 얼굴 이미지로부터 형성하는 단계(510b) 및 (3) 상기 (1)(2) 과정에서 얻은 기준 벡터와 사용자 벡터를 사용하여 얼굴의 유사도를 판단하는 단 계(S60)를 갖는다.
이하 상기 (1)~(3)의 단계에서 수행되는 과정을 상세히 설명한다.
(1) 얼굴 인증 시 기준으로 사용되는 기준 벡터를 입력된 얼굴 이미지로부터 형성하는 단계(510a)를 도5 및 도1을 참조해서 이하 설명한다.
얼굴(110)의 좌측에 위치한 제1 스테레오 카메라(121a)에 의해 촬영된 좌안 이미지를 입력 받는 단계(S11a) 및 얼굴(110)의 우측에 위치한 제2 스테레오 카메라(121b)에 의해 촬영된 우안 이미지를 입력 받는 단계(S13a)를 갖는다.
입력된 좌안 이미지로부터 특징점을 추출하는 단계(S21a) 및 입력된 우안 이미지로부터 특징점을 추출하는 단계(S23a)를 갖는다.
좌안 이미지로부터 추출된 특징점과 우안 이미지로부터 추출된 특징점을 서로 정합(matching)하는 특징점 정합 단계(S30a)를 갖는다.
특징점 정합을 통해 서로 대응하는 특징점들을 찾고 대응점 간의 길이를 숫자로 나타낸 디스페러티 맵(disparity map)을 사용하여 얼굴 인증 시 비교되는 기준으로 사용되는 기준 벡터를 생성하는 단계(S40)를 갖는다.
기준 벡터는 3차원 구조물 형상을 나타내기 위해 점과 선으로 물체의 외양 만을 표현하는 와이어 프레임 모델(Wire frame model) 등을 사용하여 간략화 된 3차원개체모델을 형성하도록 실시할 수 있지만, 이에 한정하지 아니하고 다양하게 응용될 수 있음은 당연하다.
기준벡터는 얼굴 인증 시 비교되는 기준으로 사용되는 것이므로 처음부터 3차원 공간상의 기준 좌표계(W)에서 표시되도록 한다.
(2) 얼굴 인증 시 상기 기준벡터와 비교하기 위해 사용자 벡터를 입력된 사용자의 얼굴 이미지로부터 형성하는 단계(510b)를 도5 및 도1을 참조해서 이하 상세히 설명한다.
이 경우 앞에서 설명한 (1) 기준 벡터를 형성하는 단계(510a) 중 좌안 또는 우안 이미지를 입력 단계(S11a, S13a)로부터 특징점을 정합하는 단계(S30a) 부분은 서로 공통되므로, 공통되는 부분에 대한 설명은 생략하며, 이하 차이점이 있는 부분에 대하여 설명한다.
사용자의 좌안 또는 우안 이미지 입력단계(S11b, S13b)는 촬영되는 사용자의 얼굴이 촬영 당시 카메라와의 각도 등에 따라 차이가 있을 수 있고, 이로 인해 얼굴 정면이 촬영된 이미지 뿐 아니라 얼굴 측면이 촬영된 이미지를 입력받을 수 있다.
따라서 이 경우 특징점을 정합하는 단계(S30b) 이후 기준 벡터와 비교하기 위해 사용자의 얼굴좌표계(F)에서 구현된 특징점의 위치를 기준 좌표계(W)로 변환하는 3차원 구조물로 변환하는 작업(S35b)이 필요하다.
3차원 구조물로 변환하는 작업(S35b)의 상세한 설명은 도4에서 이미 설명한 바 있으므로 상세한 설명은 생략한다.
3차원 구조물로 변환하는 작업(S35b) 이후 사용자 벡터를 생성하는 단계(S40b)를 갖는데, 이는 앞에서 설명한 기준벡터를 생성하는 단계(S40a)와 유사하므로 상세한 설명은 생략한다.
(3) 상기 기준 벡터 생성 단계 및 사용자 벡터 생성 단계 이후의 과정을 이 하 상세히 설명한다.
얼굴 데이터를 구축하는 단계(S50)는 기준 벡터를 생성하는 단계(S40a)에서 생성된 기준 벡터를 데이터베이스(data base)에 미리 저장한다.
얼굴 유사도를 판단하는 단계(S60)는 데이터베이스에 미리 저장된 기준 벡터와 실시간으로 입력되어 들어오는 사용자 벡터를 호출한 후 소정의 절차에 따라 얼굴의 유사도를 판단하는 과정으로 이의 상세한 내용은 이하 도6에서 설명한다.
결과 출력 단계(S70)는 얼굴 유사도를 판단하는 단계(S60)에서 수행한 결과에 따라 사용자가 데이터베이스에 등록된 사람인지 여부를 출력한다.
도 6은 본 발명의 얼굴 유사도를 판단하는 단계(S60)에서 수행되는 과정을 구체적으로 도시한 것이다.
도 6을 참조하면, 얼굴 유사도를 판단하는 단계(S60)는 하기와 같은 단계를 수행하여 사용자의 얼굴 유사도를 판단한다.
먼저, 데이터베이스에 미리 저장된 기준 벡터와 실시간으로 입력되는 사용자 벡터를 호출하는 단계(S61)를 갖는다.
호출된 기준 벡터와 사용자 벡터의 비교를 통해 상호간의 유사도를 계산하는 단계(S62)를 갖는다. 유사도는 기존에 입력된 기준 벡터(예를 들어, 입력된 사용자의 와이어프레임)와 새로 입력된 사용자 벡터(예를 들어, 카메라가 촬상한 새로운 사용자의 와이어프레임)이 일치하는 지를 결정하는 단계로, 기준 벡터와 사용자 벡터 사이에 차이를 연산하는 과정이다. 이와 같은 유사도는 사용자 벡터가 상기와 같은 병진변환과 회전변환에 의하여 기준벡터와 일치될 수 있는 가로 결정된다. 즉, 병진과 회전변환에 의하여 두 벡터가 일치하면 동일한 사람이며, 병진과 회전변환에 의하여 두 벡터가 일치하지 않으면 다른 사람으로 판단할 수 있다. 유사도 값은 동일인을 어떻게 판단할 것인가에 관한 알고리즘에 관련된 값으로, 예를 들어서 회전과 병진 변환에 의하여 일치하는 특징점의 개수이거나, 와이어프레임 모델에서 서로 일치하는 격자 간 표면적 등이 선택될 수 있다.
상기 계산된 유사도 값과 미리 정한 임계값의 크기를 비교 판단하는 단계(S63)를 갖는다. 상기의 임계값은 특징점 추출과 스테레오 정합에 의한 판단이 동일한 사람에 대하여 거부되지 않도록 설정되어야 한다.
상기 비교 판단하는 단계(S63) 이후, 유사도 값이 임계값 보다 크거나 같다고 판단한 경우 사용자가 데이터베이스에 등록된 사람으로 판단하는 단계(S64)를 갖는다.
또한 유사도 값이 임계값 보다 작다고 판단한 경우 사용자가 데이터베이스에 등록되지 않은 사람으로 판단하는 단계(S65)를 갖는다.
이상에서는 본 발명에 대한 기술사상을 첨부 도면과 함께 서술하였지만 이는 본 발명의 바람직한 실시 예를 예시적으로 설명한 것이지 본 발명을 한정하는 것은 아니다. 또한 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 이라면 누구나 본 발명의 기술적 사상의 범주를 이탈하지 않는 범위 내에서 다양한 변형 및 모방이 가능함은 명백한 사실이다.