상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 휴대용 영상 촬영 기기는 영상을 수신하는 영상 입력부와, 상기 수신한 영상으로부터 사람의 얼굴을 검출하는 얼굴 검출부와, 인물 동영상으로 저장하는 제1모드인 경우, 상기 얼굴 검출부에서 검출된 영상을 인물 동영상으로 저장하는 저장부 및 인물 정지영상으로 저장하는 제2모드인 경우, 상기 얼굴 검출부에서 검출된 영상의 품질을 검사하는 품질 검사부를 더 포함하고, 상기 저장부에는 상기 품질 검사부에서 소정의 조건을 만족하는 영상이 인물 정지영상으로 저장된다.
또한, 상기 목적을 달성하기 위하여, 얼굴 검출을 기반으로 하는 휴대용 영상 촬영 기기에 있어서, 본 발명의 실시예에 따른 영상 촬영 방법은 영상을 수신하는 단계와 상기 수신한 영상으로부터 사람의 얼굴을 검출하는 단계 및 인물 동영상으로 저장하는 제1모드인 경우, 상기 검출된 영상을 인물 동영상으로 저장하고, 인물 정지영상으로 저장하는 제2모드인 경우, 상기 검출된 영상의 품질을 검사한 후, 소정의 조건을 만족하는 영상을 인물 정지영상으로 저장하는 단계를 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있 다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하, 본 발명의 실시예들에 의한 휴대용 영상 촬영 기기 및 영상 촬영 방법을 설명하기 위한 블록도 또는 처리 흐름도에 대한 도면들을 참고하여 본 발명에 대해 설명하도록 한다. 이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하도록 기구를 만들 수 있다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭 션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑제되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
도 1은 본 발명의 실시예에 따른 영상 촬영 과정을 나타내는 개략적인 플로우 차트이다.
우선, 사용자가 휴대용 영상 촬영 기기를 이용하여 인물 정지영상 또는 인물 동영상을 촬영하기 위해서 화면으로 입력되는 영상으로부터 사람의 얼굴이 있는지 여부를 검사한다(S120). 이 때, 사람의 얼굴을 검출하는 방법은 도 3 내지 도 17에서 구체적으로 설명하도록 한다.
사람의 얼굴이 검출되면 검출된 영상의 품질을 검사한다(S140). 이 때, 영상의 품질은 주로 인물 정지영상을 촬영할 때 적용되는 것이 바람직하며, 예컨대, 적당한 강도의 조명에서 촬영되는가, 얼굴 크기가 적당한가, 검출된 영상에 블러(blur)가 발생하였는가 또는 초점이 맞추어져 있는가 등을 검사하게 된다. 이러한 영상 품질을 검사하는 방법에 대해서는 도 18내지 도 22에서 구체적으로 설명하도록 한다. 위와 같은 영상 품질에 대한 각각의 해당 조건을 만족하는 영상은 휴대용 영상 촬영 기기에 저장된다(S160).
도 2는 본 발명의 실시예에 따른 휴대용 영상 촬영 기기의 구성을 나타내는 블록도이다.
휴대용 영상 촬영 기기(200)는 영상 입력부(220), 얼굴 검출부(230), 품질 검사부(240), 제어부(210), 사용자 인터페이스부(260) 그리고 저장부(250)를 포함한다.
영상 입력부(220)는 카메라와 같은 영상 입력 기기와 같이 외부로부터 영상을 수신하고, 얼굴 검출부(230)는 영상 입력부(220)로부터 수신한 영상으로부터 사람의 얼굴을 검출한다.
품질 검사부(240)는 얼굴 검출부(230)에서 검출된 인물영상, 바람직하는 인물 정지영상의 품질을 검사하고, 저장부(250)는 품질 검사부(240)에서 소정의 기준을 만족하는 인물 영상의 이미지를 저장한다.
사용자 인터페이스부(260)는 사용자로 하여금, 동영상을 촬영한 것인지 또는 정지영상을 촬영할 것인지를 설정하게 하거나, 사람의 얼굴이 검출되었을 때 자동으로 촬영할 것인지 수동으로 촬영할 것인지를 설정하게 하거나, 어떤 영상 품질을 선택할 것인지를 설정하게 하는 사용자 인터페이스를 제공한다.
제어부(210)는 영상 입력부(220), 얼굴 검출부(230), 품질 검사부(240), 사용자 인터페이스부(260) 그리고 저장부(250) 간의 동작을 제어한다.
이 때, 상기 '~부'는 소프트웨어 또는 Field Programmable Gate Array(FPGA) 또는 주문형 반도체(Application Specific Integrated Circuit, ASIC)과 같은 하드웨어 구성요소를 의미하며, '~부'은 어떤 역할들을 수행한다. 그렇지만 '~부'는 소 프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부''들로 더 분리될 수 있다.
이하, 상기 구서요소들간의 동작을 구체적으로 설명하도록 한다.
우선 사용자가 인물 정지영상 또는 인물 동영상을 촬영하기 위해서는 휴대용 영상 촬영 기기(200)의 사용자 인터페이스부(260)를 통하여 영상 선택 모드, 촬영 모드, 품질 선택 모드 등을 설정한다.
이 때, 영상 선택 모드는 동영상을 촬영할 것인지 아니면 정지영상을 촬영할 것인지를 설정하기 위한 모드이다. 또한, 촬영 모드는 사람의 얼굴이 검출되었을 때 자동으로 촬영되게 할 것인지(자동 촬영) 아니면 수동으로 촬영할 것인지(수동 촬영)를 설정하기 위한 모드이다. 또한, 품질 선택 모드는 선택할 영상 품질을 설정하기 위한 모드로서, 조명 검사, 얼굴 크기 검사, 영상 블러(blur) 검사, 자동초점(autofocus) 조절 등을 설정할 수 있으며, 이러한 기능 모두를 수행하도록 설정할 수도 있다.
이러한 각각의 모드는 휴대용 영상 촬영 기기(200)에 탑재된 디스플레이 화면(미도시)으로 사용자에게 제공될 수 있으며, 각각의 모드는 한꺼번에 또는 트리 구조와 같은 형태로 사용자에게 제공되는 것이 바람직하다. 또한, 휴대용 영상 촬영 기기(200)는 사용자가 각각의 모드 중에서 원하는 설정을 할 수 있도록 하는 설정 수단을 포함한다. 이러한 설정 수단의 예로서, 4방향 키 버튼, 선택 버튼 등이 있다. 한편, 또다른 실시예로서 위와 같은 모드는 전체 또는 그 중 일부가 제어부(200)에 미리 프로그램되어 동작할 수도 있다.
사용자 인터페이스부(260)로부터 입력된 각각의 모드에 해당하는 정보는 제어부(210)로 전달되고, 제어부(210)는 상기 정보에 따라 영상 입력부(220), 얼굴 검출부(230), 품질 검사부(240) 그리고 저장부(250) 등을 제어하게 된다.
만일, 사용자가 인물 정지영상을 촬영하고자 하는 경우에는 얼굴 검출부(230)는 영상 입력부(220)로부터 입력된 영상에서 사람의 얼굴을 검출하고, 검출된 영상을 품질 검사부(240)로 전달한다. 이 때, 품질 검사부(240)에서는 사용자 인터페이스부(260)에서 선택된 품질 검사 항목에 대해서 소정의 기준을 만족하는지 여부를 판단하고, 상기 기준을 만족하는 경우에는 이를 제어부(210)에게 알린다.
이 때, 촬영 모드가 자동 촬영인 경우에는 제어부(210)는 해당하는 영상을 자동으로 촬영하고, 촬영된 영상을 저장부(250)에 저장한다. 만일, 촬영 모드가 수동 촬영인 경우에는 제어부(210)는 소정의 방법을 이용하여 사용자에게 알려주고, 사용자가 수동으로 해당 영상을 촬영하면 제어부(210)는 해당 영상을 저장부(250)에 저장한다. 이 때, 상기 방법으로서 LED와 같은 시각적인 표시 수단 또는 경보음 과 같은 알림 수단 등을 이용할 수 있다.
만일, 사용자가 인물 동영상을 촬영하고자 하는 경우에는 얼굴 검출부(230)는 영상 입력부(220)로부터 입력된 영상에서 사람의 얼굴을 검출하고, 검출된 영상을 품질 검사부(240)로 전달하거나, 또는 직접 저장부(250)에 저장할 수도 있다. 이 때, 모든 품질을 검사하는 경우에는 영상이 끊길 수도 있으므로 자동초점 조절 정도만 검사하는 것이 바람직하다.
한편, 또다른 실시예로서, 자동초점(autofocus) 기능은 인물 정지영상 또는 인물 동영상에 대하여 제어부(210)가 수행하게 할 수도 있다.
이하, 도 3 내지 도 17에서는 얼굴 검출부(230)에서 얼굴을 검출하는 방법을 구체적으로 설명하도록 한다.
우선, 얼굴을 검출하기 위해서는 사람에게 가능한 얼굴 회전각을 알아내서 이를 정의할 필요가 있다.
사람의 얼굴 회전 방향은 도 3에서 도시한 바와 같이, 예컨대 3차원 좌표축 즉, x축, y축, z축을 중심으로 회전한 경우로 나눌 수 있다.
x축을 중심으로 회전하는 경우에는 윗면(up-view), 정면(frontal-view), 아래면(down-view)으로 나눌 수 있다.
y축을 중심으로 회전하는 경우에는 좌면(left-view), 정면(frontal-view), 우면(right-view)으로 나눌 수 있다.
z축을 중심으로 회전하는 경우에는 사람의 얼굴이 기울어진 각도로 구별할 수 있는데, 도 3에서는 사람의 얼굴이 30도 간격으로 기울어진 것을 나타내고 있 다.
사람에게 가능한 회전각을 x축, y축, z축으로 각각 나누어 살펴보도록 한다.
도 4는 사람의 얼굴을 x축을 중심으로 회전한 회전 각도를 나타내고 있는데, x축을 중심으로 회전하는 것을 'nodding rotation' 또는 'out-of-plane rotation'이라고도 한다.
x축 회전(상하 고개 끄덕임)으로는 [-60°, 80°] 범위 정도이지만, 발생 빈도가 많은 [20°, 50°] 범위의 윗면(up-view) 얼굴은 정면(frontal-view) 얼굴을 검출하는 방법을 이용하여 검출이 가능하고, 그 이상에 해당하는 [50°, 80°] 범위의 윗면(up-view) 얼굴은 얼굴 요소가 잘 보이지 않고, 발생 빈도가 거의 없기 때문에 검출 대상에서 제외할 수 있다. 바람직하게는 x축 회전에 대해서는, [-60°, -20°] 범위의 아래면(down-view) 얼굴과 [-20°, 50°] 범위의 정면(frontal-view) 얼굴을 검출하기로 한다. 더욱 바람직하게는 인물 정지영상을 촬영하는 경우에는 [-20°, 20°] 범위의 정면(frontal-view) 얼굴을 검출하기로 한다.
도 5는 사람의 얼굴을 y축을 중심으로 회전한 회전 각도를 나타내고 있는데, y축을 중심으로 회전하는 것을 'out-of-plane rotation'이라고도 한다.
y축 회전(좌우 측면으로 회전)으로는 [-180°, 180°] 범위가 되지만, [-180°, -90°]과 [90°, 180°] 부분은 뒤통수가 정면보다 더 많이 나오는 부분이기 때문에, y축 회전에 대해서 본 발명에 따른 실시예에서는 [-90°, -20°] 범위의 좌면(left-view) 얼굴, [-20°, 20°] 범위의 정면(frontal-view) 얼굴과 [20°, 90°] 범위의 우면(right-view) 얼굴을 검출하기로 한다. 바람직하게는 인물 정지 영상을 촬영하는 경우에는 [-20°, 20°] 범위의 정면(frontal-view) 얼굴을 검출하기로 한다.
한편, 사람의 얼굴을 z축을 중심으로 회전하는 경우에 z축 회전(좌우 머리 기울임)으로는 [-180°, 180°] 범위를 갖을 수 있다. z축을 중심으로 회전하는 것을 'in-plane rotation'이라고도 한다.
z축 회전에 대해서는, [-180°, 180°] 범위의 모든 회전을 다루지만, 사람이 서 있는 상태에서 회전 가능한 각도는 [-45°, 45°] 범위 정도이기 때문에, 기본 모드 검출 대상으로는 [-45°, 45°] 범위로 하고, 확장 모드 검출 대상으로는 [-180°, 180°] 범위로 하기로 한다. 바람직하게는 인물 정지영상을 촬영하는 경우에는 [-20°, 20°] 범위의 기본 모드에 대한 얼굴을 검출하기로 한다.
한편, z축 회전에 대해서는 사람의 얼굴이 30°와 45°간격으로 기울어진 것을 나타낼 수 있는데, 도 6a에서는 전자를, 도 6b에서는 후자를 나타내고 있다.
이하에서는 도 6a에서 도시한 모드를 '제1-z축 회전 모드', 도 6b에서 도시한 모드를 '제2-z축 회전 모드'라고 칭하기로 한다.
z축 회전에서는 좌편향(left-leaned) 얼굴, 똑바른(upright) 얼굴, 우편향(right-leaned) 얼굴이 있다.
[표 1]에서는 위에서 설명한 본 발명의 실시예에 따른 검출 대상 얼굴의 회전각 범위를 나타내고 있다.
구분 |
X축 회전 |
Y축 회전 |
Z축 회전 |
설명 |
상하로 고개 끄덕임 |
좌우 측면으로 회전 |
좌우로 머리 기울임 |
회전 가능 각도 |
[-60° 80°] |
[-180° 180°] |
[-180° 180°] |
검출 대상 |
기본 모드 |
[-60° 50°] |
[-90°90°] |
[-45° 45°] |
확장 모드 |
[-60° 50°] |
[-90° 90°] |
[-180° 180°] |
한편, 본 발명의 실시에 따른 얼굴 검출부(230)는 케스케이드로 연결된 분류기(cascaded classifier)들을 이용하여 얼굴을 검출할 수 있는데, 이 때, 각각의 분류기들은 종래의 외형 기반(appearance-based) 패턴 인식 방법의 하나인 AdaBoost 알고리즘으로 학습된 것으로 한다. AdaBoost 알고리즘은 여러 개의 간단하고 빠른 약한 분류기(weak classifier)들을 가중치의 합(weighted sum) 형태로 구성하여, 빠르면서도 높은 성공률을 갖는 한 개의 강한 분류기(strong classifier)를 만들어 내는 매우 효율적인 학습 알고리즘이다. 이하에서는, 특정한 얼굴의 포즈(pose)를 검출하기 위한 강한 분류기(strong classifier)를 '얼굴 검출기(face detector)'라고 칭하기로 한다.
얼굴 검출기는 미리 학습된 다수의 얼굴 패턴을 이용하여 입력된 영상으로부터 얼굴과 비얼굴을 구별하게 되므로 우선 학습할 얼굴 패턴을 결정할 필요가 있다.
예컨대, 앞서 설명한 바와 같이, x축 회전에 대해서는, [-60°, -20°] 범위의 아래면(down-view) 얼굴과 [-20°, 50°] 범위의 정면(frontal-view) 얼굴을 검출하기 위해서 2개의 얼굴 검출기가 필요하다.
또한, y축 회전에 대해서는, [-90°, -20°] 범위의 좌면(left-view) 얼굴과, [-20°, 20°] 범위의 정면(frontal-view) 얼굴 및 [20°, 90°] 범위의 우면 (right-view) 얼굴을 검출하기 위해서 3개의 얼굴 검출기가 필요하다.
z축 회전에 대해서는, 제1-z축 회전 모드의 경우에 확장 모드에서는 12개의 얼굴 검출기가 필요하고, 기본 모드에서는 3개의 얼굴 검출기가 필요하다. 그리고, 제2-z축 회전 모드의 경우에 확장 모드에서는 8개의 얼굴 검출기가 필요하고, 기본 모드에서는 2개의 얼굴 검출기가 필요하다.
결국, 제1-z축 회전 모드의 경우, x, y, z축 회전을 모두 고려하면, 필요한 얼굴 검출기의 개수는 기본 모드일 경우에는 2×3×3 = 18개이며, 확장 모드일 경우에는 2×3×12 = 72개이다.
그리고, 제2-z축 회전 모드의 경우, x, y, z축 회전을 모두 고려하면, 필요한 얼굴 검출기의 개수는 기본 모드일 경우에는 2×3×2 = 12개이며, 확장 모드일 경우에는 2×3×8 = 48개이다.
그런데, 제1-z축 회전 모드 또는 제2-z축 회전 모드의 경우에는 회전(rotation) 또는 미러링(mirroring: 좌우 좌표 바꾸기) 기법을 이용함으로써 학습에 필요한 얼굴 검출기의 개수를 줄일 수 있는데, 도 7에서 이를 나타내고 있다.
예컨데, 제1-z축 회전 모드에서 정면(frontal-view) 얼굴일 경우에, 똑바른(upright) 얼굴(702)을 -90°, 90°, 180° 만큼 회전하면 708, 720, 714와 같은 얼굴 영상을 얻게 된다. 그리고, 30° 좌편향(left-leaned) 얼굴(724)을 -90°, 90°, 180° 만큼 회전하면 706, 718, 712와 같은 얼굴 영상을 얻게 된다. 또한, 30° 좌편향(left-leaned) 얼굴을 미러링(mirroring)하면 30° 우편향(right-leaned) 얼굴(704)을 얻을 수 있고, 30° 우편향(left-leaned) 얼굴(704)을 -90°, 90°, 180° 만큼 회전하면 710, 722, 716와 같은 얼굴 영상을 얻게 된다. 결국, 똑바른(upright) 얼굴(702)과 30° 좌편향(left-leaned) 얼굴만 학습하면 나머지 다른 얼굴들을 회전(rotation) 또는 미러링(mirroring)을 통하여 얻을 수 있게 되므로, 정면(frontal-view) 얼굴에 대한 12개의 서로 다른 얼굴 검출기는 2개의 검출기만 학습하면 만들어 낼 수 있다.
마찬가지 방법으로 도 8에서 도시하는 바와 같이 좌면(left-view) 얼굴은 각각 3개의 검출기로 12개의 서로 다른 검출기들을 만들어 낼 수 있고, 또한 우면(right-view) 얼굴은 좌면(left-view) 얼굴을 미러링(mirroring)하여 만들어 낼 수 있다.
결국, 제1-z축 회전 모드의 경우, x, y, z축 회전 모두를 고려할 때에 학습해야 할 얼굴 검출기의 개수는 기본 모드와 확장 모드일 경우에 2(frontal-view, down view)×5 = 10개이다. 이 때, 정면(frontal-view) 얼굴에 대하여 학습해야 얼굴들을 도 9에서 나타내고 있다.
제2-z축 회전 모드에서 정면(frontal-view) 얼굴의 경우는 도 10에서 도시하고 있다. 도 10에서 도시하고 있는 바와 같이, 기본 모드의 우편향(right-leaned) 얼굴(1002)을 -90°, 90°, 180° 만큼 회전하면 1006, 1014, 1010과 같은 얼굴 영상을 얻게 된다. 그리고, 기본 모드의 우편향(right-leaned) 얼굴(1002)을 미러링(mirroring)하면 좌편향(left-leaned) 얼굴(1016)을 얻을 수 있고, 좌편향(left-leaned) 얼굴(1016)을 -90°, 90°, 180° 만큼 회전하면 1004, 1012, 1008과 같은 얼굴 영상을 얻게 된다. 결국, 우편향(right-leaned) 얼굴(1002)만 학습하면 나머 지 다른 얼굴들을 회전(rotation) 또는 미러링(mirroring)을 통하여 얻을 수 있게 되므로, 정면(frontal-view) 얼굴에 대한 8개의 서로 다른 얼굴 검출기는 1개의 검출기만 학습하면 만들어 낼 수 있다.
마찬가지 방법으로 도 11에서 도시하는 바와 같이 좌면(left-view) 얼굴은 각각 2개의 검출기로 8개의 서로 다른 검출기들을 만들어 낼 수 있다. 또한 우면(right-view) 얼굴은 좌면(left-view) 얼굴을 미러링(mirroring)하여 만들어 낼 수 있다.
결국, 제2-z축 회전 모드의 경우, x, y, z축 회전 모두를 고려할 때에 학습해야 할 얼굴 검출기의 개수는 기본 모드와 확장 모드일 경우에 2(frontal-view, down view)×3 = 6개이다. 이 때, 정면(frontal-view) 얼굴에 대하여 학습해야 얼굴들을 도 12에서 나타내고 있다.
[표 2]에서는 위에서 설명한 본 발명의 실시예에 따른 얼굴 검출기의 개수를 나타내고 있다.
|
필요한 얼굴 검출기의 개수 |
학습해야 할 얼굴 검출기의 개수 |
제1모드 |
기본 모드 |
18 |
10 |
확장 모드 |
72 |
10 |
제2모드 |
기본 모드 |
12 |
6 |
확장 모드 |
48 |
6 |
도 13은 본 발명의 실시예에 따른 얼굴 검출부의 구성을 나타내는 블록도로서, 얼굴 검출부(230)는 얼굴 검출 제어 모듈(231)과, 서브 윈도우 생성 모듈(232)과, 제1 얼굴 탐색 모듈(233)과, 제2 얼굴 탐색 모듈(234) 그리고 제3 얼굴 탐색 모듈(235)을 포함한다. 이 때, 상기 '모듈'은 앞서 설명한 '~부'의 의미한 동일은 의미로서 해석될 수 있다.
서브 윈도우 생성 모듈(232)은 영상 입력부(220)로부터 제공된 영상 이미지에 대한 서브 윈도우를 생성한다. 이 때, 서브 윈도우는 입력된 이미지를 소정의 크기만큼 잘라낸 이미지를 말한다. 예컨대, 입력된 이미지의 크기가 320×240(픽셀)인 경우에 24×24(픽셀) 크기만큼 이미지를 잘라내면, 잘려진 이미지는 입력된 이미지의 서브 윈도우가 되는 것이다. 이 때, 서브 윈도우 생성 모듈(232)은 최소 서브 윈도우 크기를 정의하고, 최소 서브 윈도우 크기로부터 서브 윈도우의 가로 또는 세로의 크기를 늘려가면서, 즉 서브 윈도우 크기를 증가시키면서 순차적으로 제1 얼굴 탐색 모듈(233)로 생성된 서브 윈도우를 제공한다.
제1 얼굴 탐색 모듈(233), 제2 얼굴 탐색 모듈(234) 및 제3 얼굴 탐색 모듈(235)은 서브 윈도우 생성 모듈(232)로부터 생성된 서브 윈도우로부터 얼굴을 검출하기 위한 동작을 수행한다.
얼굴 검출 제어 모듈(231)은 제1 얼굴 탐색 모듈(233) 내지 제3 얼굴 탐색 모듈(235)의 동작에 따른 얼굴 검출 여부와 관련하여 서브 윈도우 생성 모듈(232)의 동작을 제어한다.
제1 얼굴 탐색 모듈(233)이 서브 윈도우 생성 모듈(232)로부터 서브 윈도우를 수신하면, 수신된 서브 윈도우에서 소정의 알고리즘을 이용하여 얼굴을 탐색한다. 만일 얼굴이 검출되면, 제2 얼굴 탐색 모듈(234)로 상기 서브 윈도우를 전달하지만, 만일 검출되지 않으면 사용자가 얼굴 검출 제어 모듈(231)은 서브 윈도우 생 성 모듈(232)로 하여금 새로운 서브 윈도우를 생성하게 하여 제1 얼굴 탐색 모듈(233)로 전달하도록 한다.
제2 얼굴 탐색 모듈(234)은 전달된 서브 윈도우에서 소정의 알고리즘을 이용하여 얼굴을 탐색한다. 만일 얼굴이 검출되면, 제3 얼굴 탐색 모듈(235)로 상기 서브 윈도우를 전달하지만, 만일 검출되지 않으면 사용자가 얼굴 검출 제어 모듈(231)은 서브 윈도우 생성 모듈(232)로 하여금 새로운 서브 윈도우를 생성하게 하여 제1 얼굴 탐색 모듈(233)로 전달하도록 한다.
제3 얼굴 탐색 모듈(235)은 전달된 서브 윈도우에서 소정의 알고리즘을 이용하여 얼굴을 탐색한다. 만일 얼굴이 검출되면 검출된 영상 이미지는 품질 검사부(240)로 전달된다. 바람직하게는 사용자가 인물 동영상 촬영을 하는 경우에는 검출된 영상 이미지가 품질 검사부(240)로 전달되지 않고, 제어부(210)에 의해 저장부(250)에 직접 저장될 수도 있다.
만일, 제3 얼굴 탐색 모듈(235)에서 얼굴이 검출되지 않으면, 사용자가 얼굴 검출 제어 모듈(231)은 서브 윈도우 생성 모듈(232)로 하여금 새로운 서브 윈도우를 생성하게 하여 제1 얼굴 탐색 모듈(233)로 전달하도록 한다.
한편, 제1 얼굴 탐색 모듈(232), 제2 얼굴 탐색 모듈(234), 제3 얼굴 탐색 모듈(235)에서 얼굴을 탐색하는 알고리즘은 도 14a 내지 도 14c을 이용하여 설명하도록 한다.
도 14a는 종래의 'coarse-to-fine search' 알고리즘을, 도 14b는 종래의 'simple-to-complex search' 알고리즘을, 도 14c은 본 발명의 실시에 따른 'parallel-to-separated search' 알고리즘을 나타내고 있다.
'coarse-to-fine search' 알고리즘은 케스케이드로 연결된 분류기(cascaded classifier)의 초기 단계는 'whole-view' 분류기(classifier)로 구성하고, 점차 좁은 각도의 분류기(classifier)로 구성해 나간다는 것이다. 이러한 알고리즘을 이용하면 초기 단계에서 비얼굴이 빨리 제거됨으로써, 전체 검출 시간을 줄일 수 있게 된다. 이 때, 'whole-view' 분류기(classifier)는 얼굴의 포즈(pose)와는 관계없이 이미 학습된 정보를 이용하여 주어진 서브 윈도우에서 얼굴의 형상이 존재하는지 여부만을 탐색한다.
'simple-to-complex search' 알고리즘은 쉬운 분류기(classifier)를 앞쪽 단계에 위치하고, 어렵고 복잡한 분류기(classifier)를 뒤쪽 단계에 배치하여 속도를 향상시키는 방식이다. 대부분의 비얼굴은 처음 단계에서 제거되기 때문에 초기 단계를 간단하게 만들면 효과가 크게 된다.
'parallel-to-separated search' 알고리즘은 본 발명의 실시예에 따른 것으로서 예컨대, K 단계까지만 모든 방향에 대한 얼굴 검출기를 평행하게 배열하고, K+1 단계 이후부터는 각 방향의 얼굴 검출기를 독립적으로 고립되게 배열하는 방식이다. 평행하게 배열한다는 의미는, 하나의 방향에서 얼굴검출 성공하면 같은 방향의 다음 단계로 이동하지만, 실패하면 다른 방향에서의 얼굴 검출 과정으로 이동한다는 의미이다. 그리고, 고립되게 배열한다는 의미는, 하나의 방향에서 얼굴 검출에 성공하면 같은 방향의 다음 단계로 이동하지만, 만일 얼굴 검출에 실패할 경우에는 즉시 비얼굴로 결정하고 얼굴 검출을 종료한다는 의미이다. 이러한, 'parallel-to-separated search' 알고리즘을 이용할 경우에는 초기에 입력 영상의 얼굴이 어떤 방향인지 판단하고, 그 이후에는 그 방향에 대해서만 집중적으로 얼굴 또는 비얼굴을 결정할 수 있기 때문에, 높은 정확도와 빠른 속도를 갖는 얼굴 검출기를 구현할 수 있게 된다.
도 14a 내지 도 14c에서 도시한 알고리즘을 결합하여 도 15와 같은 다면 얼굴 검출기를 구성할 수 있다.
도 15에서 도시하고 있는 각각의 블록들은 블록에서 표현되는 방향의 얼굴을 검출하는 얼굴 검출기를 나타내고 있으며, 'A'라고 표시되는 영역은 좌측에서 동작하는 방식과 동일하게 동작하는데, 설명의 편의상 생략하였다. 또한, 아래로 향하는 화살표는 해당 얼굴 검출기에서 얼굴이 검출되었을 때의 동작의 흐름을 나타내고, 오른쪽으로 향하는 화살표는 해당 얼굴 검출기에서 얼굴이 검출되지 않았을 때의 동작의 흐름을 나타낸다.
예컨대, 제1 얼굴 탐색 모듈(233)이 서브 윈도우 생성 모듈(232)로부터 특정 서브 윈도우를 입력받으면, 제1 얼굴 탐색 모듈(233)에서는 whole-view 얼굴 검출기로 이미 학습된 정보에 따라 얼굴과 비얼굴을 구분한다(1∼1'단계).
만일, 1∼1'단계에서 얼굴이라고 판단되면 상기 서브 윈도우를 제2 얼굴 탐색 모듈(234)로 전달하고, 제2 얼굴 탐색 모듈(234)에서는 2∼2'단계와 3∼4단계를 수행한다.
2∼2'단계에서는 x축 회전에 의한 정면(frontal-view) 얼굴과 아래면(down-view) 얼굴의 얼굴 그룹(face group)으로 구분하고, 3∼4단계에서는 z축 회전에 의 한 똑바른(upright) 얼굴, 좌편향(left-leaned) 얼굴, 우편향(right-leaned) 얼굴의 얼굴 그룹(face group)으로 구분하여 이미 학습된 정보에 따라 얼굴 검출을 수행한다.
1∼1'단계, 2∼2'단계 그리고 3∼4단계가 수행되는 과정은 'coarse-to-fine search' 알고리즘을 이용하고 있음을 알 수 있다. 또한, 1∼1'단계, 2∼2'단계 그리고 3∼4단계를 수행하는 얼굴 검출기는 내부적으로 'simple-to-complex search' 알고리즘을 사용한다.
5∼M 단계까지는 이미 학습된 정보에 따라 모든 방향으로 얼굴을 구분한다. 이 때, K 단계까지는 현재의 단계에서 얼굴 검출에 성공하면 다음 단계로 이동하고, 실패하면 우측의 얼굴 검출기로 이동한다. 그러나, 이후에는 현재의 단계에서 얼굴 검출에 성공하면 다음 단계로 이동하지만, 실패하면 비얼굴로 결정하고 해당 서브 윈도우에서의 얼굴 검출 동작은 종료하게 된다. 따라서, M 단계까지 도달한 서브 윈도우에 대해서만 얼굴이 검출된 것으로 결정하는 것이다.
이 때, 5∼K단계와 K+1∼M단계가 수행되는 과정은 'parallel-to-separated search' 알고리즘을 이용하고 있음을 알 수 있다. 또한, 5∼K단계와 K+1∼M단계를 수행하는 얼굴 검출기는 내부적으로 'simple-to-complex search' 알고리즘을 사용한다.
도 16a 및 도 16b는 본 발명의 실시예에 따른 얼굴 검출 방법을 나타내는 플로우 차트이다. 또한 도 17은 본 발명의 실시예에 따른 얼굴 검출 과정의 상태를 나타내는 예시도이다.
설명의 편의를 위하여 도 16a, 도 16b, 도 17을 연결하여 설명하도록 하는데, 여기에서 영상 입력부(220)로부터 제공된 이미지는 x축 회전에 대한 정면(frontal-view) 얼굴인 것으로 가정한다. 따라서, 도 15에서 도시한 2~2'단계는 생략하기로 하고, whole-view 얼굴을 검출하는 단계를 1~2단계로 표시하여 설명하도록 한다.
또한, 도 17에서 'W'는 'whole-view'를, 'U'는 'Upright'를, 'L'은 '30 Left leaned'를, 'R'는 '30 Right leaned'를 나타낸다. 그리고, 'f'는 'fail' 즉, 얼굴 검출에 실패했음을 나타내고, 's'는 'succeed' 즉, 얼굴 검출에 성공했음을 나타내며, 'NF'는 'Non-Face'를 나타낸다.
서브 윈도우 생성 모듈(232)이 임의의 서브 윈도우를 생성하면(S1602), 생성된 서브 윈도우에서 얼굴을 검출하기 위한 초기값 설정 동작이 수행된다(S1604). 이 때, 초기값 변수로서는 n, N1, N2, K, M 등이 있다.
'n'은 얼굴을 검출하는 단계를 나타내고, 'N1'는 whole-view 얼굴을 탐색하기 위한 기준값(reference value)을 나타내고, 'N2'는 z축 회전에 의한 얼굴(upright-view, left leaned-view, right leaned-view)을 탐색하기 위한 기준값을 나타낸다. 그리고, 'M'은 y축 회전에 의한 얼굴(frontal-view, left-view, right-view)을 탐색하기 위한 기준값을 나타내고, 'K'는 본 발명의 실시에 따른 'parallel-to-separated search' 알고리즘에서 있어서, 얼굴 검출기를 '고립'되게 배열하는 단계와 '평행'하게 배열하는 단계를 구분하는 기준값을 나타낸다. 여기에 서는 초기값으로 n=1, N1=2, N2=4, K=10, M=25이 설정된다.
초기값 설정 동작이 종료되면, 제1 얼굴 탐색 모듈(233)은 n 단계에서 whole-view 얼굴을 검출한다(S1606, 1702). 만일 얼굴이 검출되지 않으면 서브 윈도우에는 얼굴이 존재하지 않는 것으로 판단한다. 만일 얼굴이 검출되면 n 값을 1만큼 증가하고(S1608), 증가된 n 값이 N1값을 초과하는지 여부를 판단한다(S1610). 만일 증가된 n 값이 N1값을 초과하지 않는 경우에는 S1606의 동작을 수행한다. 본 발명의 실시예에서는 N1값을 2로 설정하였기 때문에, 제1 얼굴 탐색 모듈(233)은 whole-view 얼굴에 대하여 'simple-to-complex search' 알고리즘을 1회 수행하게 된다(1702->1704).
S1610 단계에서 증가된 n 값이 N1값을 초과하는 경우에는 제2 얼굴 탐색 모듈(234)은 n 단계에서 upright-view 얼굴을 검출한다(S1612, 1706). 이 때, 'coarse-to-fine search' 알고리즘이 적용된다.
만일 S1612(1706) 단계에서 얼굴이 검출되지 않으면 동일한 단계에서 left leaned-view 얼굴을 검출한다(S1660, 1708). 만일 S1660 단계에서 얼굴이 검출되지 않으면 동일한 단계에서 right leaned-view 얼굴을 검출한다(S1670, 1710). S1670 단계에서도 얼굴이 검출되지 않으면 해당 서브 윈도우에는 얼굴이 존재하지 않는 것으로 판단한다. 만일 S1612(1706) 단계, S1660(1708) 단계 또는 S1670(1710) 단계에서 얼굴이 검출되면 n 값이 1만큼 증가되고(S1614, S1662, S1672), 증가된 n 값이 N2값을 초과하는지 여부를 판단한다(S1616, S1664, S1674). 만일 증가된 n 값이 N2값을 초과하지 않는 경우에는 S1612 단계, S1660 단계 또는 S1670 단계의 동작을 수행한다. 본 발명의 실시예에서는 N2값을 4로 설정하였기 때문에, 제2 얼굴 탐색 모듈(234)은 upright-view, left leaned-view 또는 right leaned-view 얼굴에 대하여 'simple-to-complex search' 알고리즘을 1회 수행하게 된다(1706->1712, 1708->1714, 1710->1716).
이하에서는 설명을 용이하게 하기 위하여, S1612 단계에서 얼굴이 검출되고, n 값이 N2값을 초과하였다고 가정한다. 도 16b에서는 이후의 과정을 나타내고 있는데, 이 때 I-블록(S1666)과 II-블록(S1676)은 S1620 단계 내지 S1654 단계에서 동작하는 방법과 동일하게 동작한다.
제3 얼굴 탐색 모듈(235)은 n 단계에서 upright, frontal-view 얼굴을 검출한다(S1620, 1718). 만일 S1620(1718) 단계에서 얼굴이 검출되지 않으면 동일한 단계에서 upright, left leaned-view 얼굴을 검출한다(S1626, 1720). 만일 S1626 단계에서 얼굴이 검출되지 않으면 동일한 단계에서 upright, right leaned-view 얼굴을 검출한다(S1632, 1722). S1632 단계에서도 얼굴이 검출되지 않으면 I-블록(1666) 또는 II-블록(1676)에서 얼굴 검출 동작이 수행된다.
만일 S1620(1718) 단계, S1626(120) 단계 또는 S1632(1722) 단계에서 얼굴이 검출되면 n 값이 1만큼 증가되고(S1622, S1628, S1634), 증가된 n 값이 K값을 초과하는지 여부를 판단한다(S1624, S1630, S1636). 만일 증가된 n 값이 K값을 초과하 지 않는 경우에는 S1620 단계, S1626 단계 또는 S1632 단계의 동작을 수행한다. 본 발명의 실시예에서는 K값을 10으로 설정하였기 때문에, 제3 얼굴 탐색 모듈(235)은 upright, frontal-view, upright left-view 또는 upright right-view 얼굴에 대하여 'simple-to-complex search' 알고리즘을 최대 5회 수행하게 된다(1718->1724, 1720->1726, 1722->1728).
이하에서는 설명을 용이하게 하기 위하여, S1620 단계에서 얼굴이 검출되고, n 값이 K값을 초과하였다고 가정한다.
제3 얼굴 탐색 모듈(235)은 n 단계에서 upright, frontal-view 얼굴을 검출한다(S1640, 1730). 만일 S1640(1730) 단계에서 얼굴이 검출되지 않으면 해당 서브 윈도우에서 얼굴이 존재하지 않는 것으로 판단한다. 만일 S1640 단계에서 얼굴이 검출되면 n 값이 1만큼 증가되고(S1642), 증가된 n 값이 M값을 초과하는지 여부를 판단한다(S1644). 만일 증가된 n 값이 M값을 초과하지 않는 경우에는 S1640 단계의 동작을 수행한다. 그리고 증가된 n 값이 M값을 초과하는 경우에는 비로소 해당 윈도우에 얼굴이 존재하는 것으로 결정하게 된다.
앞서 설명한 바와 같이 제3 얼굴 탐색 모듈(235)에서 동작하는 과정은 본 발명의 실시에 따른 'parallel-to-separated search' 알고리즘과 종래의 'simple-to-complex search' 알고리즘을 적용하고 있다. 즉, K 단계까지는 모든 방향에 대한 얼굴 검출기를 평행하게 배열하고, K+1 단계부터 M 단계까지는 각 방향의 얼굴 검출기를 고립되게 배열하고 있으며, 다음 단계로 이동하면서 'simple-to-complex search' 알고리즘을 적용하고 있다.
한편, 본 발명의 실시예에서는 x축 회전된 얼굴을 검출하고나서 z축 회전된 얼굴을 검출하고, 마지막으로 y축 회전된 얼굴을 검출하는 순서로 동작하고 있으나, 이러한 순서는 예시적인 것이며 순서를 달리하여 얼굴을 검출하는 것은 당업자에게 자명하다.
또한, 바람직하게는 사용자가 인물 정지영상을 촬영하고자 하는 경우에는 앞서 설명한 얼굴 검출 방법에 있어서, 얼굴 회전각이 x축, y축, z축에 대해서 각각 [-20°, 20°] 범위에 해당하는 얼굴을 검출하기로 하며, 이러한 범위에 속하는 얼굴을 정면 얼굴로 간주하도록 한다. 따라서, 제어부(210)는 얼굴 검출 제어 모듈(231)로 하여금 [-20°, 20°] 범위에 속하는 얼굴을 검출하는 얼굴 검출기만 동작하도록 할 수 있다.
도 18은 본 발명의 실시예에 따른 인물 정지영상을 촬영하는 방법을 나타내는 플로우 차트이다.
우선 사용자가 인물 정지영상을 촬영하기 위하여 도 2에서 도시한 사용자 인터페이스부(260)를 통하여 정지영상 모드를 선택하면, 얼굴 검출부(230)는 영상 입력부(220)를 통해 수신된 영상으로부터 얼굴을 검출한다(S1802). 이 때, 얼굴 회전각이 x축, y축, z축에 대해서 각각 [-20°, 20°] 범위에 속하는 얼굴, 즉 정면 얼굴을 검출하는 얼굴 검출기에 의해서 얼굴 검출이 수행된다.
만일 얼굴 검출부(230)에서 얼굴 검출에 성공한 경우에는 영상의 품질을 검사하기 위한 단계로 이동하고(S1804 -> S1806), 그렇지 않은 경우에는 다음 영상으로부터 얼굴 검출을 수행하게 된다(S1804 -> S1802).
만일 사용자가 사용자 인터페이스부(260)의 품질 선택 모드에서 조명 측정 기능을 선택한 경우에는 조명 강도를 측정하고(S1806->S1808), 적절한 조명일 경우에는 다음 품질 검사 단계로 이동하고(S1810->S1812), 그렇지 않은 경우에는 다음 영상으로부터 얼굴 검출을 수행하게 된다(S1810 -> S1802).
조명 강도를 측정하는 방법으로서, 영상의 조명 강도 v가 미리 정하여 놓은 임계 조명 강도 V*보다 큰 경우에 영상을 저장하도록 한다.
이 때, 상기 조명 강도 v는 W*H의 디멘전(dimension)을 갖는 영상 I의 전체 평균치로 정의될 수 있으며, 이를 [수학식 1]에서 나타내고 있다.
이 때, W(Width)는 영상 I의 너비를 나타내고, H(Height)는 영상 I의 높이를 나타내며, i, j는 각각 W와 H의 픽셀수에 대한 인덱스를 나타낸다. 그리고, I(i,j)는 영상 I의 (i,j)좌표에서의 조명 강도를 나타낸다.
만일 사용자가 사용자 인터페이스부(260)의 품질 선택 모드에서 얼굴 크기 측정 기능을 선택하는 경우에는 얼굴 크기를 측정하고(S1812->S1814), 적절한 크기일 경우에는 다음 품질 검사 단계로 이동하고(S1816->S1818), 그렇지 않은 경우에는 다음 영상으로부터 얼굴 검출을 수행하게 된다(S1816 -> S1802). 얼굴 크기를 측정하고, 측정된 얼굴 크기가 적절한 크기인지를 판단하는 방법은 도 20에서 후술 하도록 한다.
만일 사용자가 사용자 인터페이스부(260)의 품질 선택 모드에서 영상 블러(blur) 측정 기능을 선택한 경우에는 영상 블러(blur)를 측정하고(S1818->S1820), 블러(blur)가 존재하지 않는 경우에는 다음 품질 검사 단계로 이동하고(S1822->S1824), 그렇지 않은 경우에는 다음 영상으로부터 얼굴 검출을 수행하게 된다(S1822 -> S1802). 블러(blur)의 존재를 찾아내는 방법은 도 21 및 도 22에서 후술하도록 한다.
만일 사용자가 사용자 인터페이스부(260)의 품질 선택 모드에서 얼굴지향 자동초점(autofocus) 기능을 선택한 경우에는 자동초점 기능을 수행하는데(S1824 -> S1826), 이 때, 얼굴에 초점을 맞추도록 한다.
만일 사용자가 사용자 인터페이스부(260)의 촬영 모드에서 자동촬영을 선택한 경우에는 제어부(210)는 현재의 영상 프레임(frame)을 저장부(250)에 저장한다(S1828->S1834). 그러나, 촬영 모드에서 수동촬영이 선택된 경우에는 제어부(210)는 소정의 방법을 이용하여 사용자에게 알려주고(S1830), 사용자가 수동으로 해당 영상을 촬영하면 제어부(210)는 해당 영상을 저장부(250)에 저장한다(S1832). 이 때, 제어부(210)가 사용자에게 알려주는 방법으로서 LED와 같은 시각적인 표시 수단 또는 경보음과 같은 알림 수단 등을 이용할 수 있다.
도 19는 본 발명의 실시예에 따른 인물 동영상을 촬영하는 방법을 나타내는 플로우 차트이다.
우선 사용자가 인물 동영상을 촬영하기 위하여 도 2에서 도시한 사용자 인터 페이스부(260)를 통하여 동영상 모드를 선택하면, 얼굴 검출부(230)는 영상 입력부(220)를 통해 수신된 영상으로부터 얼굴을 검출한다(S1902). 이 때, 얼굴 검출부(230)는 다면 얼굴 검출기를 이용하게 된다. 만일 얼굴 검출부(230)에서 얼굴 검출에 성공한 경우에는 검출된 영상 프레임을 저장하고(S1904 -> S1906), 그렇지 않은 경우에는 다음 영상 프레임으로부터 얼굴 검출을 수행하게 된다(S1904 -> S1902). S1906 단계에서 저장된 영상 프레임은 저장하고자 하는 인물 동영상의 첫번째 프레임이 된다.
그리고 나서, 두번째 이후의 인물 영상 프레임을 얻기 위하여, 다면 얼굴 검출기를 이용하여 영상 입력부(220)를 통해 수신되는 영상으로부터 얼굴을 검출한다(S1908). 만일, 얼굴 검출에 성공한 경우에는 얼굴 지향 자동초점(autofocus) 기능을 수행하고(S1910->S1914), 현재 검출된 영상 프레임을 저장한다(S1916). 얼굴 지향 자동초점(autofocus) 기능을 수행함으로써 화면에 등장하는 다른 사물에 의한 급작스런 초점의 변화를 방지할 수 있다. 그러나, 만일 S1910 단계에서 얼굴 검출에 성공하지 못한 것으로 판단하면, 얼굴 검출 실패 회수가 기설정된 회수 K 보다 작은지 여부를 검사하여(S1912), 얼굴 검출 실패 회수가 K 보다 작은 경우에는 현재 영상 프레임을 저장한다(S1916). 즉, 비록 영상 프레임으로부터 얼굴이 검출되지 않더라도 이미 S1906 단계에서 첫번째 영상 프레임이 저장되어 인물 동영상 저장이 시작되었기 때문에 저장되는 인물 영상이 끊어지지 않기 위해 소정의 회수 동안 얼굴 검출에 실패하더라도 해당하는 영상 프레임을 저장하는 것이다. 이 때, 상기 K 값은 10-15 정도가 바람직하며, 이에 대응하는 시간은 약 0.5 초 내지 1초 정 도가 바람직하다. 만일 S1912 단계에서 얼굴 검출 실패 회수가 K보다 작지 않은 경우에는 인물 동영상 저장은 종료된다.
사용자가 인물 동영상을 촬영하는 도중에 강제로 촬영을 종료하는 버튼을 누르거나 또는 인물 동영상을 촬영하는 시간이 미리 설정된 인물 동영상 녹화 시간을 초과하는 경우에는 인물 동영상 저장은 종료되고, 그렇지 않은 경우에는 다면 얼굴 검출기를 이용하여 다음 영상 프레임으로부터 얼굴 검출을 수행하게 된다(S1918). 예컨대, 사용자가 최장 녹화 시간 T를 5분으로 설정해 두었다고 가정하면, 얼굴이 검출되어 녹화중이라고 하더라도 저장되는 시간이 5분을 초과하게 되면 자동으로 종료하게 되는 것이다.
도 20은 본 발명의 실시예에 따라 얼굴 크기를 검사하는 예를 나타내는 영상 이미지이다. 얼굴 크기를 검사하는 방법으로서, 검출된 영상 이미지에 있는 얼굴의 크기(w, h)가 미리 설정해 놓은 임계 크기(W*, H*)보다 큰 경우를 적절한 크기로 결정한다. 이 때, (w, h)는 검출된 영상 이미지에 있는 얼굴의 크기를 나타내는 영역의 크기를 나타내는데, w는 너비(width), h는 높이(height)를 나타낸다.
도 21은 본 발명의 실시예에 따라 블러(blur)를 검출하는 방법을 나타내는 플로우차트로서, 휴대용 영상 촬영 기기가 얼굴 검출기로 얼굴 검출을 수행한 후(S2110), 검출된 얼굴 영상의 이미지를 추출하게 된다(S2120). 이 때, 2-D DCT(two-dimensional Discrete Cosine Transform)와 같은 알고리즘을 이용하여 이미지 변환을 수행하고(S2130), 변환된 이미지 정보로부터 공간 고주파수의 비율을 나타내는 p 값을 구하게 된다(S2140). 만일 상기 p 값이 미리 설정된 공간 고주파수 임계 비율 P*보다 큰 경우에는 영상 블러(blur)가 존재하는 것으로 판단하게 된다(S2150).
도 22는 본 발명의 실시예에 따라 블러(blur)를 검출하는 예를 나타내는 영상 이미지이다. 여기에서, (a)는 p 값이 P*보다 크게 되어 블러(blur)가 존재하지 않는다고 판단한 경우를 나타내고 있고, (b)는 p 값이 P*보다 작게 되어 블러(blur)가 존재한다고 판단한 경우를 나타내고 있다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 한정하는 것은 아니다.