Sunday, June 7, 2009

OpenCV와 얼굴 인식

Machine Vision 분야를 한마디로 정리하자면 인간의 시각적 능력을 컴퓨터로 대신하려는 노력이라 할 수 있습니다. 인간의 감각(또는 동물의 감각)은 사물의 절대적 측정보다는 차이를 극대화하여 인식하는 방향으로 발달해 왔기 때문에 다이나믹레인지가 아주 넓고 비선형적인 인식 특성을 가지고 있습니다. 또한 경험을 바탕으로한 보정 능력은 컴퓨터 프로그램으로 따라하기 어려운 부분이라 하겠습니다.

따라서 공장의 생산라인과 같이 조명이나 화상 정보가 아주 잘 통제된 상황하에서는 machine vision이 난이도도 그다지 높지 않고 잘 동작하지만 자연광 하에서의 얼굴 인식(face recognition)과 같이 외적 조건이 다양하게 변화하는 경우에는 제대로 동작하도록 만들기가 대단히 어렵습니다. 이런 특성은 바로 아래 음성 인식에서 관찰되는 경우와 유사한데 예를 들어서 동일한 얼굴에 대해 조명을 위에서 비추는가 또는 아래서 비추는가에 따라 카메라로 입력되는 화상의 정보는 전혀 다른 데이터를 보이게 됩니다.

이런 특성으로 인해서 machine vision 분야는 얼마나 고도의 복잡한 알고리즘을 사용했는가 보다는 얼마나 잘 설정된 조명 환경을 만들었는가가 더 중요한 요소가 되고 알고리즘 자체에서도 이론적으로 얼마나 잘 무장되었는가 보다는 실제 적용 환경에 따라 달라지는 요소를 얼마나 잘 반영하였는가가 더 중요한 그런 분야라고 하겠습니다.

그럼에도 불구하고 machine vision에서 사용되는 기본적인 알고리즘들은 상당한 사전지식을 필요로하기 때문에 일반 프로그래머들이 접근하기 용이하지 않은 분야이기도 합니다. Intel에서는 상당히 오래 전부터 machine vision을 포함하는 알고리즘 분야에 대한 연구를 계속해 왔고 그 중 일부를 OpenCV(Open Source Computer Vision)이라 하여 open source로 공개하였습니다. 이 OpenCV가 적용되는 분야 중 일부를 열거해 보자면
  • Face Recognition
  • Gesture Recognition
  • Motion Tracking
  • Mobile Robotics
등이 있겠습니다. 모두 그 자체로 이 분야에서 상당한 수준(대학원 전공 이상)의 지식을 필요로 하는 주제입니다만 이 OpenCV를 이용하면 간단한 프로그래밍 지식만 가지고도 어느 정도 이용은 가능하다고 하겠습니다. OpenCV가 공개되고 많은 사람들이 참여하기 시작한 만큼 계속 발전하면 어느 단계에서는 누구나 용이하게 위의 내용들을 적용할 수 있게 될 것입니다. 단 완성도의 측면에서는 상용의 제품과 비교할 바는 아니고 그 전에는 접근하기 어려웠던 분야가 mission-critical 하지 않다는 전제 하에서 누구나 쉽게 이용할 수 있게 되었다는 데 의미를 두어야 할 것이라고 보입니다.

이 주제를 꺼낸 이유는 바로 Face Recognition 등의 기능을 홈오토메이션에 이용할 가능성을 염두에 두고 있는 것입니다. 이와 관련해서 참고해 볼 제품이 XID Technologies사 제품입니다.





개인적으로는 이 회사제품에 대해 기술적 완성도를 높이 평가하는 편은 아니지만 중요한 것은 상용의 제품으로 출시하였다는 것이라 하겠습니다. 싱가폴의 회사로 아마도 시장 진출에 상당한 부분을 싱가폴 정부의 지원에 의존하고 있는 듯 보이는데 앞에서도 언급한 대로 이 얼굴 인식 기능이 완벽하지 않은 상황에 적절하게 대응하여 상용화를 하고 있는 듯 보입니다. 즉, 단독형 제품의 경우 출입통제 장치로서 ID 카드와 동시에 적용함으로써 보조 보안장치로 사용하고 있고, 컴퓨터 프로그램 제품의 경우 얼굴 인식을 통한 자동 로그인 기능 역시 단 한번에 정확히 인식하지 못하거나 어느 정도 오동작의 요소가 있어도 크게 문제가 되지 않는 분야로 생각됩니다. Computer에 적용되어 얼굴 인식으로 login을 대신하는 제품이 Fuzitsu 노트북인가에 적용되었다고 들었는데 관련 자료를 찾기 어렵군요.

이 얼굴 인식 기능을 홈오토메이션에 적용하는 경우 기존에 있는 하드웨어(도어폰 카메라로 영상을 획득하고 홈서버로 알고리즘을 수행)를 그대로 이용하면 되니까 추가되는 비용은 없습니다. 인식률에 있어서도 인식대상이 극소수로 한정되니까 오동작의 가능성을 상당히 낮출 수 있고 다른 인식 수단(음성 등)과 같이 사용하면 거의 100% 가깝게 높이는 것도 그다지 어려울 것 같지 않습니다. 운용 예를 들자면 도어폰 버튼을 길게 누르고 패스워드를 말하면 화상과 음성 정보를 이용해서 대상을 식별하고 자동으로 문을 여는 식이 될 수 있겠지요.

물론 보안의 문제는 쉽게 단정지어 상용화 할 수 있는 분야는 아니지만 중요한 것은 기존에는 접근하기 어려웠던 얼굴 인식이라는 주제가 이제 open source의 도움으로 그다지 어렵지 않게 적용해 볼 수 있는(추가의 하드웨어 없이 소프트웨어 만으로) 단계가 되었고 이와 관련된 다양한 아이디어들을 구체화해 볼 수 있겠다는 관점에서 소개하였습니다.

No comments:

Post a Comment