머리말
우리 주위에 굉장히 많은 영상이 범람하게 되었다. 이 때문에 대량의 영상 속에서 특정 영상을 검색하는 요구가 커지고 있다. 여기에서 설명하는 것은 특히 이 중에서도 인물영상 검색이다. 인물영상의 검색 요구가 큰 애플리케이션으로써 대량의 감시 카메라 기록이나 디지털 카메라 등으로 취득한 대량 영상 속에서의 인물 검색 등이 있다. 예를 들면, 수사 현장에서는 어떤 감시 카메라에 찍힌 범인의 영상을 바탕으로 같은 특징을 가진 인물을 대량의 기록에서 검색하는데 막대한 공정수를 거치고 있다. 또한, 찍어서 모아 둔 동영상이나 정지화면으로 이루어진 가족 앨범에 있어서 자신의 아이나 친구 등 특정인물을 빨리 찾아내고 싶다고 생각하는 경우도 자주 있다.
이러한 문제를 해결하기 위해 얼굴인식 연구가 이루어져 왔지만, 얼굴인식만으로 충분한 정밀도를 발휘할 수 없는 경우도 많다. 또한, 검색대상이 되는 인물의 한 부분이나 그 이상의 영상이 필요한 것도 때로는 문제가 된다. 그래서 얼굴인식 이외의 인물검색 수법으로써 안경·선글라스·마스크 등의 장착물이나 머리 모양·머리카락 색 등 얼굴 주변의 ‘인물 속성’을 단서로 한 인물 검색을 검토했다(이후, 인물 속성 검색이라고 한다).
인물 속성 검색에서 이용될 가능성이 있는 속성은 다양하다. 예를 들면, 어떤 때에는 선글라스를 쓴 인물을 검색하고 싶을지도 모르고, 다른 때에는 금발의 인물이나 회색 니트 모자를 쓴 인물을 검색하고 싶을지도 모른다.
이와 같이 검색에 이용되는 속성(검색 키)의 종류는 다양하며, 더욱이 그것들 속성의 조합이 발생할 가능성이 있다는 것을 생각하면, 대응해야 하는 속성의 수는 매우 많아진다. 이에 대해 만약 각각의 검색 키에 대응한 식별장치를 준비하려고 하면 사용될 가능성이 있는 속성 모두와 그러한 조합에 대응하는 방대한 수의 식별장치를 준비해야 하기 때문에 현실적이지 않다.
그러나 검색 키로 이용하고 싶은 속성을 가진 인물의 샘플 영상을 이용하여 그 샘플 영상과 유사한 영상을 검색할 수 있다면 이러한 문제는 피할 수 있다.
이 경우 샘플 영상만 준비하면 기본적으로 어떤 속성으로도 검색이 가능해진다. 실용적으로는 많은 조건에 있어서 비교적 간단하게 샘플 영상을 준비할 수 있다. 예를 들어, 앞에서 기술한 수사 현장에 있어서는 감시 카메라에 찍힌 다양한 장면의 범인 영상을 이용할 수 있다. 또한, 인터넷의 영상 검색 등에서 웃는 얼굴의 사진 등 특정 속성의 얼굴 사진을 수 장에서 수십 장 준비하는 것은 그다지 어렵지 않다. 따라서 샘플 영상을 이용한 인물 속성 검색은 비교적 간단하게 실시할 수 있다.
샘플 영상을 이용한 영상 검색은 다양한 분야에서 이미 실용화되고 있다. 그 대부분은 주어진 한 장의 샘플 영상과 검색대상 영상의 거리에 근거하여 일정한 거리 이내에 있는 영상을 검색 결과로써 되돌려준다. 따라서 대상이 사람의 얼굴처럼 같은 속성을 가지고 있어도 조금씩 변동하는 경우에는 한 장이 아니라 복수의 샘플과 비교할 필요가 있다. 이와 같이 복수의 샘플 영상을 줌으로써 비교적 높은 정밀도의 검색을 실시할 수 있게 된다고 생각되지만, 너무나 많은 샘플 영상을 주는 것은 현실적이지 않다. 따라서 적은 샘플 영상으로 가능한 한 높은 정밀도를 얻을 수 있는 알고리즘이 필요하다.
이에 여기서는 보다 높은 정밀도로 검색하기 위해 검색 요구 시에 단시간에 속성을 학습하는 ‘학습형 검색’을 설명한다. 이 때 문제가 되는 것은 ‘학습 샘플로써 필요한 영상 매수’와 ‘학습에 필요한 시간’이다. 수백 장의 학습 샘플을 준비하여 검색하는 것은 쉽지 않다. 또, 학습에 시간이 걸리면 검색 요구 시에 기다리게 되므로 불편해진다. 따라서 학습 시간은 사람이 기다릴 수 있는 시간 내(몇 초 정도)인 것이 중요해진다. 이상의 요건을 정리하면, 학습형 인물 속성 검색에 있어서는 ‘소수의 학습 샘플에 의해 단시간에 속성을 학습할 수 있을 것’이 요건이 된다.
한편, 얼굴의 속성 인식에 관해서는 성별, 연령, 인종, 표정 등을 개별적으로 추정하는 수법이 제안되고 있다. 이러한 수법은 미리 특정 속성에 대응한 고정밀도의 식별장치를 구축하는 방법이며, 앞에서 기술한 것과 같이 다양한 속성과 그 조합이 방대한 종류에 이르는 것을 생각하면 목적인 다양한 인물 속성 검색에 응용할 수 없다.
이에 대해 다양한 인물 속성에 대응한 프레임 워크로써 FaceTracer가 제안되고 있다2). 이 수법은 다음과 같은 순서로 이루어진다. ①사전에 정한 10개의 국소 영역에서 합계 450종류의 영상 기술(색공간, 정규화 방법 등의 조합)을 실시한다 ②각각 대응하는 450개의 Support Vector Machine(SVM)을 훈련한다 ③Adaboost에 의해 정밀도가 높은 SVM만을 선택한다 ④선택된 SVM의 출력을 보다 상위인 SVM로 통합한다. 이 수법의 특징은 특정 속성에 특화한 특징량을 이용하는 대신에, 450종류의 많은 영상 기술을 실시함으로써 다양한 속성에 대응할 수 있다는 점이다. 그러나 이 수법을 학습형 검색에 응용하는 경우에는 검색 요구 시에 450종류의 영상 기술·식별장치에 대한 학습 및 식별장치 선택·통합을 처음부터 실시해야 하기 때문에 시간이 걸린다(뒤에 나타내는 실험결과에 의하면 수십 분~수 시간 정도). 결과적으로, 검색할 때에 장시간 대기시간이 발생하게 되어 효율적이지는 않다.
FaceTracer에서는 어느 특징이 속성 인식에 적합한지 사전에 모르는 전제이므로, 많은 특징을 추출하고, 그것들로부터 적합한 것을 선택하는 방법을 채택하고 있다. 반대로 어떠한 특징이 속성 인식에 도움이 될지를 사전에 알고 있다면, 소수의 학습 샘플로부터도 효율적으로 그 특징을 끄집어낼 수 있어 단시간에 새로운 속성을 학습할 수 있을 것이라고 하는 전제가 학습형 검색방식의 기본이다.
그래서 학습형 인물 속성 검색에서는 다양한 얼굴 속성이 포함된 데이터 세트를 이용하여 속성이 출현하는 부분과 출현 부분에 있어서의 바리에이션을 사전에 추출해 두고 그 바리에이션의 조합에 따라 다양한 속성을 표현하는 것으로 한다. 예를 들어 안경이나 선글라스라고 하는 속성을 표현하기 위해서는 안경의 종류나 렌즈 부분의 색 등을 나타내는 국소적인 기본 패턴을 추출해 낼 수 있는 것이 바람직하다. 여기에서는 이렇게 추출해낸 국소적인 기본 패턴을 Spatial Codeword라고 부르고, 그 집합을 Spatial Codebook라고 부른다.
한편, 검색 요구 시에는 대응하고 싶은 속성의 소수 학습 샘플을 이용하여 그것들 샘플과 각 Spatial Codeword와의 유사도(거리)를 특징량으로써 속성 식별장치의 학습을 실시한다(학습형 검색). 실험결과에 나타내고 있지만, 이 학습은 비교적 적은 학습 샘플(수십 장 가량)에 의해 실시할 수 있다.
따라서 FaceTracer와 같이 대량의 학습 데이터를 이용해 학습해야 하는 수법과 비교해서 학습이 빠르다. 또한, 학습형 인물 속성 검색에서는 전체의 학습 스텝을 속성 인식에 도움이 된다고 생각되는 특징량을 집약해 전형적인 국소적 기본 패턴을 사전에 추출해 두는 단계와 그것들 국소 패턴과의 유사성을 바탕으로 학습을 실시할 단계, 이 2단계로 나눠 후자만을 검색 시에 실시한다. 따라서 전자와 후자를 동시에 실시해야 하는 종래 수법에 비해 새로운 속성 학습이 효율적이며, 이에 따라 검색시의 학습이 가능해지고 있다. 학습형 검색과 Face Tracer를 대비한 전체의 처리 흐름은 그림 1에 나타냈다.
학습형 검색의 구체적인 사용법은 다음과 같은 흐름이 된다. 예를 들면, 안경을 쓴 인물을 검색하고 싶을 경우에는 안경을 쓴 인물과 쓰지 않은 인물의 샘플 영상을 수십 장 모은다. 그 다음에 그러한 영상을 시스템에 입력하고 검색 버튼을 누른다. 내부적으로 학습형 검색이 동작하고 몇 초 이내에 고정밀도의 검색 결과가 유저에게 제시된다. 다음에서는 학습형 검색의 구체적인 실현 방법을 설명하고, 그 효과를 실험으로 나타낸다.
Spatial Codebook에 근거하는 얼굴 속성의 학습형 검색
이후에는 인물 영역이 얼굴 검출 혹은 인물 검출 등에 의해 어느 정도 정확하게 추출되고 있다는 것을 가정한다.
Spatial Codebook의 구축
다양한 인물 속성을 표현하기 위해서 그러한 속성을 구성하는 국소적 기본 패턴 집합을 대량의 라벨 무(無) 데이터(이후 학습 데이터)에서 추출한다. 국소적 기본 패턴은 학습 데이터에 포함되는 얼굴 영상을 국소 영역으로 나누고(영역간의 중복이 있어도 괜찮다), 그 각 국소지역에 있어서 K-means 클러스터링을 적용함으로써 추출한다. 여기서 국소 영역의 수를 L, 각 국소 지역에 있어서의 클러스터 수를 K로 하면, 전체에서 KL개의 클러스터가 생긴다. 그러나 KL개 모든 클러스터를 이용하는 것은 쓸데없이 길다. 예를 들면, 왼쪽 영역에서 선글라스의 클러스터를 추출해 두고, 오른쪽 영역에서 똑같이 선글라스의 클러스터를 추출했다고 하면, 이러한 클러스터의 멤버가 되는 데이터는 거의 같게 될 가능성이 높다. 이러한 경우, 어느 쪽을 제거해도 선글라스의 얼굴을 표현할 수 있다. 따라서 같은 속성을 표현하는 클러스터를 제거하고, 선택된 클러스터끼리 표현하는 속성이 서로 보완적이 되는 것이 바람직하다. 이 때문에 KL개의 클러스터로부터 클러스터링 되는 멤버가 가능한 한 직교가 되는 클러스터의 조합을 선택하는 것으로 한다. 또 한편으로 대부분의 데이터를 멤버로써 포함하는 클러스터는 속성을 분별하는 것을 목적으로 하는 만큼 시효율이 나쁘다. 또 멤버수가 극단적으로 많거나 혹은 적은 클러스터는 하나의 속성이라고 하기 보다는 전체의 경향이나 특수한 노이즈를 표현하고 있는 경우도 많다. 반대로 그러한 클러스터를 제거한 후에 남는 클러스터는 어떠한 속성의 구성요소일 가능성이 높다.
이러한 조건을 만족시키는 선택을 실현하기 위해서 얼굴의 다양한 국소 영역으로부터 추출된 각 클러스터에 대해서 그 클러스터에의 각 학습 데이터의 멤버쉽을 나타내는 멤버쉽 함수를 다음과 같이 계산한다.
![]()
여기서 i =1,...,KL는 각 클러스터에 대응하는 인덱스, x는 학습 데이터이다. 이것을 이용하여 개별 속성의 구성요소일 가능성이 높은 클러스터를 선택하기 위해서 우선 øi의 엔트로피 (수식)가 최대인 것을 선택한다. 여기서 P는 확률을 나타낸다. 단 øi는 {0, 1}의 2치이다. 계속해서 선택된 클러스터에 직교하는 øi를 가진 클러스터를 차례차례 선택해 나간다. 실제로는 선택이 진행됨에 따라, 완전히 직교하는 øi를 구하는 것은 어려워지기 때문에, 내적(內積)이 최소인 øi를 선택함으로써, 가장 직교성이 높은 것을 선택한다. 덧붙여 몇 개의 Spatial Codeword를 선택하면 좋은지는 파라미터에 따라 다르지만, 실험에서는 100정도를 이용했다.
이 방법에 의해 선택된 Spatial Codebook의 일례를 그림 2에 나타냈다. 각 영상 내 굵은 선 범위가 입력 영역 전체에 대한 Spatial Codeword의 위치를 나타내고 있다. 이것을 보면, 얼굴의 비교적 작은 국소 영역의 클러스터가 Codeword가 되어 있으며, 어느 정도 개별 속성의 구성요소가 되어 있는 상태를 알 수 있다.
.gif)
Spatial Codebook을 이용한 특징량 추출
Spatial Codebook은 얼굴 속성을 구성하는 국소적인 기본 패턴을 나타내고 있다. 따라서 임의의 얼굴 속성을 표현하려면 국소적인 각각의 기본 패턴이 어느 정도 포함되어 있는지를 알 필요가 있다. 그래서 각 Codeword와의 거리를 구해 그것을 얼굴 속성을 표현하는 특징량으로 하는 것으로 한다. 각 Codeword와의 거리를 구하기 위해서 추출된 특징량은 이용한 Codeword의 수 만큼의 차원을 가지게 된다. 그림 3은 그림 내 좌측의 각 입력영상에 대해서 특징량이 추출된 결과를 나타내고 있다. 가로축은 특징량의 인덱스 혹은 Codeword 의 인덱스를 나타내고 있으며, 세로축은 얻어진 특징량 f를 나타내고 있다. 각 가로축 아래에 나타내고 있는 것은 거리가 짧았던 Spatial Codeword이다. 결과를 보면 입력한 영상에 유사한 Spatial Codeword인 것을 알 수 있다.
한편, 검색을 고속으로 실시하기 위해서는 오프라인에서 가능한 처리를 모두 실시해 두는 것이 필요하므로 검색대상 영상 전체 Z에 대해 특징량 f(Z)를 오프라인에서 추출해 둔다.
검색 요구시에 있어서의 속성 학습
검색 요구 시에는 수 장~수십 장의 검색 대상이 되는 속성을 가지는 학습 샘플과 판별하고 싶은 대상의 학습 샘플로부터 그 속성에 특화한 식별기 H를 학습한다. 이 때문에 앞 절에서 기술한 방법으로 특징량을 추출해 그것을 바탕으로 검색하고 싶은 속성과 그 이외의 속성을 식별하는 식별장치를 구축한다. 식별장치의 구축방법으로써는 다양한 수법을 생각할 수 있지만, 일례로서 최대 마진법에 근거하는 Support Vector Machine(SVM)를 이용한다.
Face Tracer와 같이 픽셀 레벨 혹은 그것과 같은 정도의 수백에서 수천 차원으로 완성되는 식별용 특징량을 이용했을 경우에는 과적합을 막기 위해서 특징량 차원 수에 알맞은 수의 학습 샘플을 준비해야 한다. 그러나 제안수법에 있어서는 수십~수백 개에 집약한 Spatial Codeword를 이용해 특징 추출을 실시하므로, 특징량도 수십~수백 차원 정도이다.
따라서 학습 샘플은 차원수와 동일한 정도의 매수(100 매 정도)로 안정된 성능을 얻을 수 있었다. 이로 인해 비교적 소수의 학습 샘플로 몇 초간에 새로운 속성의 학습이 가능해졌다(학습 시간은 실험 결과에서 자세히 기술).
인물 속성 검색
검색 시에는 ‘Spatial Codebook를 이용한 특징량 추출’의 마지막에 기술한 검색대상의 식별용 특징 f(Z)에 대해서 ‘검색 요구 시에 있어서의 속성 학습’에서 학습한 식별장치를 적용하여 검색결과의 집합 Z*를 다음과 같이 구한다.
![]()
단, Th는 적당한 역치이며, 이것을 크게 하면 일반적으로 재현율이 낮아지고, 작게 하면(동시에 적합률이 저하하는 경우도 많지만) 재현율이 향상된다. 또한, 이것을 속성 인식에 응용할 때는 판별대상인 각 속성 ωi에 대해서 ‘1 vs. all’형의 학습을 실시함에 따라 다클래스 식별장치를 구축해 다음과 같이 추정했다.
![]()
단, Hi는 속성 ωi에 대응한 식별장치다.
실험결과
다양한 속성에 의한 얼굴 검색
제안한 수법에 의해 다양한 속성의 인물 검색을 실시할 수 있다는 것을 나타내기 위해서 비교적 다양한 속성이 포함되어 있는 AR face dataset(이후 AR DB)3)를 이용하여 평가를 실시했다.
ARDB에 포함되는 얼굴의 얼굴 방향은 정면뿐이며, 안정된 조명 조건에서 촬영됐다. 또한, 데이터 수는 각자 26장 남성 50명 여성 50명의 2,600장이다. 각 영상을 좌우 반전시킨 것을 합쳐 5,200장으로 했다. 그 다음, 무작위로 2,600장을 추출해 Spatial Codebook의 학습에 사용하고, 나머지의 2,600장을 평가 영상으로 했다. 포함되는 영상의 몇 가지 예를 그림4에 나타냈다. 이러한 얼굴 영상을 정답점 데이터를 이용해 64×75[pix]로 축소하여 실험을 실시했다. 또, Spatial Codeword의 수를 100으로 하고, 검색에 있어서는 동영상으로부터 샘플 영상을 수집하는 것을 상정해 100장의 샘플 영상을 이용했다. 이 DB에 대해 검색 실험을 10회 크로스 바리데이션으로 실시한 결과를 표 1에 나타낸다※1). 나타낸 결과는 F-치가 가장 높아지도록 역치 Th를 조정했을 때의 결과이다. 성별에 의한 검색에 있어서는 스카프나 선글라스를 장착한 조건도 테스트 영상에 포함하고 있기 때문에 정밀도가 낮아지고 있지만, 대개 90% 정도의 F치와 높은 검색 정밀도를 얻을 수 있다는 것은 알 수 있다.
.gif)
학습 샘플수가 적을 때의 정밀도
학습 샘플 수와 정밀도의 관계를 조사하기 위해서 학습 샘플 수를 변경하여 실험을 실시했다. 대상 데이터로써 앞서 기술한 AR DB 외 오므론사 내에 있어서 수집한 오므론 DB를 이용했다. AR DB에 있어서의 평가에서는 ①장착물 없음, ②선글라스, ③스카프를 쓴 얼굴, ④「절규」의 4클래스 식별을 실시했다. 한편, 오므론 DB는 장착물이 없는 인물, 선글라스나 마스크를 쓴 다양한 인물이 포함되는 데이터 베이스이다. 각각의 인물은 다양한 조명 조건·표정·얼굴 방향의 조건으로 촬영되었다. 또 데이터 수의 평가 영상 수는 9,068장이었다. Spatial Codebook의 구축에 평가용과 다른 2,032장을 이용했다. 그림 5는 이 DB에 포함되는 영상의 예이다. 이 DB에는 얼굴 위치 등의 인물 위치를 특정하기 위한 정답치가 존재하지 않기 때문에 오므론 사의 OKAO Vision 라이브러리의 얼굴 검출(선글라스나 마스크를 쓴 얼굴에서도 얼굴 검출 가능) 및 얼굴 기관(器官) 검출을 이용해 자동적으로 인물 위치를 특정했다. 따라서 이 DB에서의 실험 결과는 다양한 얼굴의 변동이 생겼을 때의 실용적인 정밀도라고 생각할 수 있다. 본 DB에 있어서의 테스트에서는 ①장착물 없음 ②선글라스 ③마스크 ④선글라스와 마스크 모두를 쓴 인물의 4 클래스 식별을 실시했다. 결과는 그림 6에 나타냈다. 이것을 보면, 특히 학습 샘플수가 적을 때 제안 수법이 Face Tracer에 비해 정밀도가 높아지고 있다는 것을 알 수 있다.
한편, 학습 샘플수가 적을 때에 있어서의 수법으로써 가장 직접적인 어프로치라고 생각할 수 있는 정규화 상관(그림 속 NCC)과도 비교해 보았다. 이 비교에 있어서도 제안 수법은 학습 샘플수가 적을 때에 정밀도가 좋다는 것을 알 수 있다. 특히, 오므론 DB와 같이 실환경에 가까운 환경에 있어서는 NCC보다 제안수법이 전체적으로 높은 정밀도를 보였다.
속성 검색 시 학습에 필요한 시간
학습형 검색에 있어서는 검색 실행 시에 순간적으로 학습과 검색이 완료되어, 유저의 대기 시간이 짧은 것이 중요해진다. 그래서 속성 검색 시 학습에 필요한 시간을 평가한다. 비교에는 AR DB를 이용했다. 속성 검색 시에 필요한 처리는 제안수법에서는 학습 샘플에 대한 식별용 특징량 추출과 SVM의 훈련이다. 한편, Face Tracer에서는 특징량 추출 및 각 특징량에 대한 SVM의 학습, adaboost에 의한 SVM 선택 및 그 뒷부분의 SVM 학습이다. 속성 검색 시에 필요한, 즉 처리에 필요한 시간은 표 2에 나타냈다. 종래 수법에 있어서는 하나의 검색마다 30분 가깝게 필요로 하는데 반해 제안수법은 3초 정도로 학습이 끝나고 있어 검색 시에 속성을 학습하는 데 있어서 현실적인 속도라는 것을 알 수 있다. 종래 수법의 학습 시간이 긴 것은 최종적으로 선택되지 않는 특징량도 포함해 쓸데없이 많은 특징량을 추출하고, 그 모든 것에 대해서 SVM의 학습을 실시하고 있는 것이 주된 원인이다. 이에 대해 제안 수법은 이 부분을 오프라인에서 속성을 구성하는 국소 패턴 집합의 추출이라고 하는 형태로 실시하며, 검색 요구 시에는 100개 정도의 Spatial Codeword와의 단순한 거리계산으로 이루어진 특징량 추출을 실시하는 것만으로 이루어지기 때문에 매우 빠르다.
맺음말
인물 속성에 의한 인물 검색은 대량의 영상 데이터 속에서 특정의 특징을 가진 인물을 찾아내기 위한 중요한 기술 중 하나이다. 한편, 인물 속성은 굉장히 다양하기 때문에 그것들 모두 설계 시에 대응하는 것은 거의 불가능하며, 필요에 따라서 새로운 속성을 이용해 검색을 실시할 수 있는 것이 중요해진다. 이 때문에 소수의 학습 샘플을 준비하는 것만으로 즉석에서 새로운 속성을 학습하여, 고정밀도의 검색을 실시할 수 있는 프레임 워크로써 학습형 인물 속성 검색을 설명했다. 이 방법에 있어서는 모든 처리를 속성의 학습 시에 실시하는 것이 아니라, 사전에 속성을 구성하는 국소적 패턴을 구축해 두고, 검색 시에는 검색 대상 영상이 각 국소적 패턴에 어느 정도 유사한지 계산해 식별장치를 순간적으로 구축한다. 이것에 의해 모든 처리를 동시에 실시하는 종래 수법과 비교해서 효율적이며 고정밀도로 검색을 실시할 수 있다는 것이 실험에 의해 분명해졌다. 게다가 학습 샘플이 적을 때에 제안 수법이 종래 수법보다 정밀도가 높다는 것도 확실해졌다. 여기에서는 인물 속성으로써 특히 얼굴 속성을 이용했지만, 그 이외의 인물 속성을 이용한 검색은 앞으로의 과제이다.
<글 : 이지리 요시히사(Ijiri Yoshihisa) / 오므론(주), 무라세 히로시(Murase Hiroshi) / 나고야 대학>
[월간 시큐리티월드 통권 제178호(sw@infothe.com)]
<저작권자 : 시큐리티월드(www.securityworldmag.co.kr) 무단전재-재배포금지>








.gif)
.gif)




