Tuesday
2019.12.3 19:33

동대신문

상단여백
HOME 특집 동대학술상
학술상 자연과학 장원 - 영상처리 기반의 감정 지능형 로봇
1. 서 론

1.1 연구의 배경 및 필요성
지능형 로봇은 정부의 10대 차세대 성장 동력 가운데 하나로 정부는 내년에 가정에서 사용할 수 있는 저가형 로봇을 시판할 계획을 밝히고 있을 정도로 각광받고 있는 산업이다. 따라서 가까운 미래에는 퍼스널로봇이 각 세대에 1대씩 보급되어 생활의 다양한 부분을 지원하게 될 것으로 예상된다. 인간은 로봇을 통해서 다양한 정보기기를 조작하거나 원하는 정보를 얻을 수 있는 등 휴먼-컴퓨터 인터페이스의 수단으로 발전할 것이다.
최초의 산업용 로봇이 출시된 이후에 로봇은 비약적인 발전을 거듭하여 왔다. 그러나 많은 사람들이 기대하였던 인간의 지능을 가지거나 일상생활 속에서 인간과 공존하는 로봇은 아직도 연구 초기 단계이며, 이의 실용화를 위해서는 많은 연구개발을 필요로 하고 있다.
사람들과 친근감이 들 수 있는 모습을 가진 감성 지능 로봇을 제작하는 것은 전자공학, 기계공학, 전산공학을 비롯한 기존의 로봇의 연구를 주도하였던 공학계열의 분야뿐만 아니라 인간공학, 감성공학, 심리학, 사회학 등 비공학계열의 연구 성과가 집약되어야 하는 분야이다.
위에서 기술한 감정을 표현하는 로봇의 경우 미국, 일본 등 로봇 선진국에서 활발히 연구되고 발표되고 있다. 그러나 우리나라의 경우 아직 2족 보행로봇이나 이동 로봇과 같은 분야에서는 많은 사람들이 관심을 가지고 실제 개발되고 있지만 감성 지능형 로봇에 대한 연구는 적은 것이 현실이다. 따라서 본 연구에서는 위에서 기술한 것과 같은 개별적인 감정을 가지고 이를 표현할 수 있는 로봇이다. 이를 위해 인간의 감정을 공학적인 관점에서 모델링하고 시각, 청각, 촉각 등 인간의 5감 중 로봇에 적용가능한 부분을 입력으로 사용하여 로봇이 자체적으로 느끼는 감정을 표정을 통해 표현하고자 한다. 또한 앞으로 로봇이 보편화될 것을 전제로 이와 같이 감정을 표현하는 로봇이 개별 사용자들에게 제공할 수 있는 서비스의 모델을 제시하고자 한다.

1.2 관련 연구
감성 로봇은 현재까지 우리나라에서는 연구의 초기단계라고 할 수 있다. 그러나 미국, 일본 등 로봇 선진국에서는 이미 90년대 중반부터 꾸준히 연구하고 있는 분야이다.
감성 지능형 대표적인 로봇은 MIT의 키즈멧(Kismet)이다. MIT의 AI 연구실에서 인간과 로봇의 상호작용을 연구하기 위하여 터키어의 '행운'을 의미하는 말에서 이름 붙여진 키스멧을 개발하였다. 키스멧은 함께 있는 사람의 말과 행동에 따라 표정과 움직임이 달라지는 등 인간과 상호작용할 수 있도록 프로그래밍 된 감성지능형 로봇이다. 안구에 들어가 있는 CCD 카메라와 소형 무선 마이크 등으로 주위의 상황을 인식하고 눈썹, 눈꺼풀, 안구, 입술, 귀 등 인간과 같은 얼굴 모양을 사용하여 기쁨과 슬픔, 놀라움, 웃음 등 매우 많은 표정을 보여준다.
일본에서 개발된 감성 지능형 로봇으로는 아이보가 있다. 인공지능을 뜻하는 AI와 로봇의 BO를 뽑아 만든 합성어로 이름 지어진 아이보는 1999년 5월 소니에서 발표한 세계최초의 본격적인 감성지능형 완구 로봇이다. 아이보는 애완동물을 대체하는 개념으로 시작되었으며 현재 다양한 옵션과 지속적인 제품 개발에 의해 인간과 친구가 될 수 있는 하나의 새로운 개체로서의 의미를 갖는다. 감성적인 측면에서는 기쁨, 슬픔, 성냄, 놀람, 공포, 혐오 등의 6개의 감성과 성애욕, 탐색욕, 운동욕, 충전욕 등의 4개의 본능이 구현되어 외부의 자극과 자신의 행동으로 인하여 감성과 본능 수치가 항상 변화한다. 칭찬이나 귀여움을 받거나 좋아하는 공 놀이를 할 때 기쁨의 수치는 높아지고, 보살핌을 못 받으면 슬픔의 수치가 높아진다. 이 로봇은 인간에게 어떠한 일을 해주는 로봇이라기보다는 하나의 인공생명체로서 정체성을 가지는 것으로 가치가 있다. 성장 유형(유년기, 소년기, 청년기, 성년기)이 입력되어 있어 성장단계와 양육 방법에 따라 행동유형이 자꾸 변화한다. 즉, 획일적으로 프로그래밍된 로봇이 아니라 인간과의 상호작용을 통해 성격이 다양하게 변화하는 어느 수준의 독립적인 개체로서의 지능을 구현한 것이다. 따라서 로봇의 행동양식은 로봇을 사용하는 사용자마다 차이가 나게 되어 있으므로 기존의 완구와는 다른 상호 대화적 관계에서 특징화 되어 하나의 살아 있는 생명체와 비슷하다고 할 수 있을 것이다.
그 외 SDR-4X는 소니가 2002년 3월 중순 발표한 감성지능형 엔터테인먼트 로봇이다. 올해는 최신 버전 'SDR-4X II'를 발표하였다. 이 로봇은 인식 가능한 단어 수가 5만~6만 개 정도이며 사람의 얼굴도 10명 정도까지는 인식 가능하며 자신을 부르는 사람에게 간단한 대답도 할 수 있고 노래도 부를 수 있다. 특히 악보나 가사를 입력하여 음성합성에 의한 비브라토(vibrato)를 포함한 가성을 생성, 감성이나 동작에 맞춘 노래 부르기 등 엔터테인먼트 기능도 가능하다.
우리나라에서 개발한 감성 지능형 로봇으로는 KAIST에서 개발한 아미는 바퀴 형태를 갖는 로봇으로서 인간의 외모에 의사소통이 가능하고 시각 인식 및 감성 표현 능력까지 갖추었다. 이 로봇은 음성 기술을 이용, 사람의 말을 알아 듣는 것은 물론 음성 합성 기술을 통해 사람과 대화를 나눌 수도 있는 특징을 갖는다. 여기에 인공 시각 시스템을 이용해 물체 인식 및 목표물 추적과 함께 카메라 2대로 실시간 거리 측정을 할 수 있으며 팔과 손끝에 내장된 압력센서를 통해 물건을 집어서 운반하는 능력이 있다. 또한 가슴에 부착된 LCD 스크린을 통해 로봇 내부의 상태 및 기쁨, 슬픔 등 감성을 표현한다. 2002년 아미의 여자친구로 아미엣을 발표하였다.
이와 같이 미국과 일본 등에 비해 아직 한국의 감성 지능형 로봇은 초기 단계라고 할 수 있다. 따라서 본 연구에서는 기존의 연구를 바탕으로 보다 인간이 느끼는 5감을 통해 인간의 감성과 비슷하고 이를 적절히 표현할 수 있는 로봇을 개발하고자 한다.
2. 감정모델

“감정”은 일상적으로 사용되는 단어로 여러 가지 상황에서 주관적으로 쓰이고 있다. 그러나 공학적인 목적으로 계산 가능한 모델로 사용하기 위해서는 정형화된 모델 내에서의 연산이 가능하므로 아래에서는 Otaley와 Jenkins가 정의한 감정을 기능적으로 정의하여 사용한다.[1]
1. 감정은 사람의 중요한 관심과 관계되는 사건(혹은 목표)을 의식적 또는 무의식적으로 평가하는 사람에 의해서 주로 유발된다. 그 관심이 해결되면 긍정적인 감정이 경험되고, 그 관심이 방해를 받으면 부정적인 감정이 경험된다.
2. 감정의 핵심은 행동 준비성과 계획의 실행성이다. 감정은 위급함을 느끼게 하는 몇 가지 행동을 먼저 하도록 만든다. 때로는 이 행동 준비성이 진행 중이던 다른 감정이나 행동과 경쟁 상태에 놓이거나 방해를 받기도 한다.
3. 감정은 신체적 변화, 표현, 행동 등을 수반하면서 독특한 정신 상태로 경험된다.
이와 같이 정의된 감정을 통해 로봇이 어떤 감정을 어떻게 표현할 것인가에 대한 문제를 논하기에 앞서 사람이 표현하는 감정의 종류는 몇 가지가 있으며 어떻게 분류할 수 있는가가 선행되는 문제이다. 이에 대해서는 여러 심리학자들에 따라 조금씩 다른 견해를 보이고 있지만 여러 감정의 목록들 중 Ortony, Clore, Collins는 가장 기본적인 감정을 4가지(두려움(fear), 화남(anger), 슬픔(sadness), 기쁜(happiness))로 분류하였고, 다음으로 혐오(disgust)와 놀람(surprise)을 추가하였다.[2] 또한 얼굴 표정에 있어서 Ekman은 놀람(surprise), 공포(fear), 혐오(disgust), 화남(anger), 슬픔(sadness), 행복(happiness)의 6가지 감정이 문화적 차이와 상관없이 인식된다고 하였다.[3]
본 연구에서는 너무 많은 감정을 로봇의 얼굴로 표현할 경우 각 감정 사이에 변화가 미비하다고 판단하여 Ekman이 제시한 6가지 감정과 이러한 감정들과 독립적이며 중립적인 감정을 제시하여 7가지 감정을 정의하였다.
인공적으로 감정을 만들어 사용하는 방법을 나누어 보면 다음과 같이 3가지로 정리할 수 있다.[4]
1. 감정을 불연속적인 상태로 표현하고, 이 중에서 하나의 감정을 선택하는 방법
2. 2차원이나, 3차원 감정 공간을 정의하여 감정 공간상의 값을 조절하여 감정을 선택하는 방법
3. 감정을 계층화, 세분화하여 조절해 주는 방법
감정을 불연속적인 상태로 표현하는 방법은 감정을 개개로 나누어 연구한 것으로 Velasquez의 Yuppy 로봇이 있다.[5] 그러나 이와 같은 방법은 감정이 연속적으로 변하지 못하여 갑자기 감정 상태의 값이 급격하게 변하는 단점이 있어 우리의 모델에는 적합하지 않다. 감정공간을 모델링하는 방법을 사용한 대표적인 것으로는 MIT의 Breazeal이 사용한 방법과 나고야대학의 Miwa가 사용한 방법이 있다.[6][7]
본 연구에서는 감정공간을 사용하면서 감정을 계층화하여 표현하여 이전의 연구보다 인간의 감정 표현에 가까운 감정 모델을 설계하였다.

2.1 감정공간을 통한 감정의 표현
본 연구에서 구현한 감정 모델은 기본적으로 MIT의 Kismet과 같이 감정 공간을 통하여 감정을 모델링하였다.[8] 그러나 Kismet의 경우 2차원 공간상에

그림1. 3차원으로 모델링된 감정 공간
서 10여 가지의 인간의 감정을 표현하였으나 이와 같이 세분화를 할 경우 인간이 육안으로 보았을 때 로봇의 감정을 명확히 파악하지 못하는 경우의 발생 확률이 높아지게 된다. 따라서 본 연구에서는 위에서 언급한 기본적인 감정 6
가지와 이와 관계되지 않은 중립적인 감정을 추가하여 감정 공간은 3차원 상에서 7가지로 분화하였다. 그림 1은 본 연구에서 3차원 공간상에 정의한 감정모델을 소프트웨어 상에서 정의한 것이다. 3차원 공간을 표현하는 3개의 축으로는, 정도(Arousal), 밸런스(Valence), 자세(Stance)를 각각의 축으로 사용하였다. 정도(Arousal)는 감정의 세기를 나타내는 축으로써 비교적 감정의 정도가 크다고 판단되는 두려움과 공포를 양(+)의 축에 배치하고 감정의 정도가 작다고 판단되는 슬픔을 음(-)의 축에 배치하였다. 밸런스(Valence)는 긍정적인 감정과 부정적인 감정을 분화하여 양(+)의 축의 크기가 증가할수록 긍정적인 감정을 표현하는데 본 연구에서는 행복의 경우 양(+)의 축에 배치하고 슬픔, 역겨움, 두려움, 화남을 음(-)의 축에 배치하였다. 자세(Stance)는 능동적인 감정과 수동적인 감정을 나타내는 축으로써 본 연구에서는 공포와 화남의 구분을 위하여 사용하였다.
이와 같은 감정 공간을 사용하여 사람의 감정을 각각의 영역으로 나누어 표현하여 3개의 좌표축의 값에 따라 표현함으로 얻을 수 있는 장점을 정리하면
1. 각각의 입력에 대해 감정의 전이를 쉽게 파악할 수 있다.
2. 감정을 불연속적으로 표현하는 방법에 비해 급격한 감정의 변화없이 자연스럽게 변화하는 감정을 확인할 수 있다.
3. 감정 공간에서 위치가 정해진 감정 영역에 정확히 포함이 되지 않더라도 근사값을 통하여 감정의 변화를 확인할 수 있다.

2.2 계층화된 감정 모델
인공 감정 행동 시스템에서 감정이 세 계층으로 이루어져 있다는 개념이 있다. 가장 상위 레벨은 우리가 일시적인 감정(Momentary emotion)이라고 부르는 것이다. 이것들은 이벤트에 대해 우리가 잠시 보이는 행동들을 말한다. 예를 들어, 일시적인 감정은 우리가 농담을 듣고 미소 짓거나 웃을 때, 또는 오래된 친구를 예상치 못하게 보게 되어서 놀랄 때 나타난다. 그 다음 레벨은 기분(Mood)이다. 기분은 일시적인 감정들이 누적된 효과로 인해 좀더 오래 지속되는 정서적인 상태를 말한다. 이 두 계층이 기반을 두고 있는 것이 바로 우리의 성격(Personality)이다. 성격은 항상 나타나는 것으로 일시적인 감정이나 감정이 없는 상황에서 일반적으로 보이는 태도이다. 그림 2는 시간의 변화에 따른 감정의 계층화를 보이고 있다.[9]
이 레벨들은 각각 우선권을 가지고 있다. 어떠한 행동을 보일 것인가를 결정할 때, 일시적인 감정은 기분보다 우선한다. 또한 사람의 감정은 그 사람의 기분에 우선한다. 일시적인 감정은 어떤 이벤트에 대한 즉각적인 반응으로, 우리가 행동을 선택할 때 가장 높은 우선권을 가진다. 기분은 대개 일시적인 감정들의 누적으로 인해 발생한다. 기분은 심지어 일시적인 감정이 사라진 후에도 점차적으로 두드러지게 증진될 수도 있다. 기분의 발달은 일시적인 감정이 긍정적인가 아니면 부정적인가에 달려있다. 만일 어떤 사람이 부정적인 일시적 감정들을 계속해서 받게 되면, 기분은 분명히 나빠지게 될 것이고 사라지는 데 오랜 시간이 걸릴 것이다. 성격의 계층은 항상 나타나며, 항상 어느 정도의 영향을 끼친다. 이러한 감정의 전이를 식(1)에 의해 전이가 일어난다. 식(1)에 의해 가장 기본적인 일시적인 감정의 입력에 의해 점화식의 형태로 재귀적 연산을 통하여 으로 감정이 변한다.

그림 2. 계층화된 감정 모델

Mood(n) = λ * Emotion(n) + Mood(n-1) ± ε
(1)
Personality(n) = μ * Mood(n) + Personality(n-1)


본 연구에서는 이러한 감정의 레벨을 기존의 성격을 바탕으로 두 가지 측면에서 사용하였다.
일시적인 감정은 로봇의 외부 자극에 대한 즉각적인 반응에 사용된다. 일시적인 감정을 통하여 표 1에서 보는 것과 같은 감정에 대한 입력에 대해서는 즉각적인 반응을 보이게 된다. 여타 감정의 레벨을 사용하게 될 경우 각각의 입력에 대해 즉각적인 반응을 보이지 않게 되므로 사용자의 입장에서는 로봇의 반응이 느리고 적절하지 않은 반응으로 보이게 된다. 예를 들면, 로봇에게 충격을 주게 되면 화남의 상태로의 전이가 나타나게 된다. 이러한 화남의 상태가 충격을 주는 경우에 즉각적으로 반응을 하지 않고 일시적인 충격이 누적되었을 경우에 화남의 상태를 표현하게 되면 사용자의 입장에서는 의아한 반응으로 느껴지게 된다. 따라서 외부 자극에 대해서는 일시적인 감정을 표현하도록 하였다.
성격은 얼굴 인식을 통하여 인식된 사람에 따라 다른 반응을 하도록 사용된다. 얼굴 인식을 통하여 사용자를 인식하게 되면 사용자 각각에 대한 로봇의 기본적인 태도가 성격을 통하여 반영되어 기본적인 감정으로 나타나게 되고 인식이 된 순간부터 각각의 성격이 연결되어 연산이 된다. 예를 들어, 사용자가 로봇에게 두려움을 주는 자극을 계속 하게 되면 로봇은 두려움이라는 일시적인 감정을 갖게 되고 이러한 자극이 계속되면 두려움이라는 성격을 형성하게 된다. 이후 로봇은 두려움이라는 성격을 형성하게 한 사용자에게 두려움이라는 성격을 반영하게 된다. 그러나 두려움이라는 성격을 형성하게 한 사용자가 로봇에게 행복이라는 일시적인 감정을 연속적으로 자극하게 되면 다시 누적되어 로봇은 다시 사용자를 긍정적인 사용자로 인식하게 된다.
이는 본래의 계층화된 감정모델의 의의와는 분명한 차이를 보인다. 본 연구에서는 누적되는 감정의 변화에서 일시적인 감정과 성격이라는 계층화된 감정을 사용하여 동적인 감정을 즉각적으로 표현하고 각각의 사용자를 인식하여 실제 사람이 외부 사람을 대하는 태도가 모두 다른 것과 같이 보다 현실적인
표 1. 로봇에 감정 전이를 위한 외부 자극
종류내용표현 감정정도밸런스자세시각좋아하는 물건Happiness․+․싫어하는 물건Disgust․-․좋아하는 색상Happiness․+․싫어하는 색상Sadness--․좋아하는 사람Happiness․+․싫어하는 사람Fear+-+청각높은 목소리Surprise+․․촉각충격Anger+--

감정을 표현하였다.

2.3 로봇에 대한 외부 자극과 감정의 전이
표 1은 로봇에 대한 외부 자극을 나타내고 있다. 인간의 5감 중 전자 및 전산학적으로 실험 가능한 3가지 감각을 제시하였다. 3가지 감각 중 가장 중요한 부분은 인간의 시각에 해당하는 로봇의 눈을 통해 입력되는 영상이다. 영상의 입력은 일반적인 퍼스널 컴퓨터에서 사용하는 카메라를 사용하였다. 영상을 통해 기본적으로 사람의 얼굴을 추적하는 것뿐만 아니라 사용자를 인식하여 사용자 개인별 서비스를 제공하는 사용된다. 영상을 통하여 각각의 사용자는 로그인을 하게 되고 로그인된 사용자에 대해 저장된 정보에 따라 거주 지역의 날씨와 좋아하는 노래, 화상채팅 등의 기능을 제공하게 된다.
사람의 청각에 해당하는 부분은 소형 마이크를 통하여 입력을 받게 된다. 마이크를 통한 사람의 음성 입력은 음성 인식 기능을 통해 사람과 로봇이 대화를 하는 것뿐만 아니라 평소보다 시끄러운 음성을 들려주는 경우 로봇이 놀람의 감정을 표현할 수 있도록 하였다.
사람의 촉각에 해당하는 부분은 소형의 센서를 사용하여 로봇에 충격을 주는 경우를 포착하여 화남의 감정을 표현할 수 있도록 하였다.
그림 3은 계층화된 감정이 소프트웨어적으로 부분을 보여주고 있다. 로봇에 대한 외부 자극은 자극의 종류에 따라 식1에 의해 누적되면 연산이 되고

그림 3. 소프트웨어 상에 적용되는 감정 모델

연산된 결과에 따라 감정의 전이가 일어나게 된다.

3. 얼굴표정

자신의 감정이나 의도를 표현하기 위해서는 표정, 제스처, 대화 등을 사용할 수 있다. 그 중 감정을 가장 솔직하고 효과적으로 표현하는 것은 얼굴의 표정이라고 할 수 있다.
얼굴은 인간의 가장 중요한 부분이다. 대부분의 의사소통은 얼굴에 포함된다. 눈, 코, 입, 귀 등은 인간의 감각을 담당하면서 표정에 따라 감정을 표현하는 중요한 기관이다. 그러나 이전의 로봇들은 인간과 같이 감정을 표현하기에는 부족한 부분이 많다.
따라서 본 연구에서는 기존의 Action Coding System을 개선하여 각각의 감정을 효과적으로 표현하고 이러한 표정을 인간이 쉽게 이해할 수 있도록 표정을 생성하였다.

3.1 얼굴 표정의 생성
얼굴 표정에 관한 이전의 연구는 Action Coding System에 의해 정의된 Action Unit을 기반으로 하고 있다. Action Unit은 얼굴의 기본적인 기관들의 44개의 근육을 14개의 Action Unit으로 변환하여 얼굴의 표정을 표현하는 것이었다.[10] 또한 이러한 Action Unit을 통해 6개의 기본적인 감정을 구현하였으며,[11] 이러한 방법을 통해 Fukuda등은 얼굴의 각 기관들의 움직임을 컴퓨터 그래픽과 로봇의 움직임으로 묘사하였다.[12]
그러나 사람의 얼굴 근육은 각각의 움직임이 제한되고 얼굴 근육의 크기가 작기 때문에 변화가 적고 단조로워 보이는 단점이 있다. 또한 사람과 의사소통을 위해 표정의 변화가 자연스럽고 부드럽게 변해야 하지만 위의 연구만으로는 이러한 변화를 나타내는 것이 쉽지 않다.
따라서 본 연구에서는 기존의 연구에서 Action Unit과 유사하게 제어 위치를 지정하여 이러한 제어 위치에서의 움직임을 통하여 사람이 인식하기 쉽게 하기 위해 얼굴의 표정을 생성하였다. 얼굴 표정을 나타내는 주요 기관인

(a)사람의 움직임 (b) 컴퓨터 그래픽 상의 움직임
그림 4. Action Unit에서의 제어 위치

눈썹, 눈, 입의 모양이 독립적으로 변화할 수 있도록 구성하였으며 얼굴의 표정을 극대화하고 실제 구현상에서 모터의 한계를 고려하여 움직임이 방향을 상하, 좌우로 제한하였다. 각각의 기관에서 동일한 제어 위치를 지정하여 이를 통하여 표정을 만들어냄으로써 효율적으로 얼굴 표정을 생성할 수 있다. 그림 4 (a)는 Action Unit에서 실제 사람의 얼굴 근육의 움직임을 나타내고 있으며 그림 4 (a)는 이러한 Action Unit의 움직임을 컴퓨터 그래픽 상에서 보정한 것이다. 그러나 이와 같은 움직임을 통하여 표정을 생성하였을 경우 표정의 변화폭이 작아 로봇의 표정을 정확히 이해하는 데에 어려움이 생긴다. 따라서 본 연구에서는 눈썹, 눈꺼풀, 입의 움직임을 세분화하였다. 특히 눈썹의 움직임은 표정의 변화를 특징적으로 표현하는 기관으로써 기존의 Action Unit에서 움직임의 위치를 3곳을 배치한 것과 달리 눈썹에 4곳의 제어 위치를 배치하여 얼굴 표정의 변화를 더욱 명확히 하였다.
또한 눈썹, 눈꺼풀, 입의 움직임의 정도를 구분하여 각각의 기관은 독립적으로 표현이 가능하도록 하였다. 또한 표정의 변화가 명확하도록 배치하였다. 로봇에서의 움직임을 표현하기 전에 컴퓨터 그래픽 상에서 로봇의 표정을 시뮬레이션하였다. 각각의 움직임을 간략히 설명하자면 그림 5는 눈썹의 모양을


그림 5. 눈썹의 움직임

표현하였다. 눈썹의 모양은 사람의 표정을 나타내는 주요 특징으로써 기존의 모델과 달리 양 끝점과 그 사이의 두 점을 특징으로 움직일 수 있도록 설계하였다. 그러나 실제 구현에서 모터의 위치와 크기의 제한으로 인하여 양 끝점을 중심을 축으로 대칭적으로 이동하도록 하였다. 또한 그림의 왼쪽에서 보는 바와 같이 이동할 수 있는 거리를 4로 나누어 이에 맞는 위치로 이동하여 사람의 표정을 더욱 특징적으로 나타낼 수 있도록 하였다.


그림 6. 눈꺼풀의 움직임

그림 7. 입의 움직임

그림 6은 눈꺼풀의 움직임을 특징으로 표현하였다. 눈꺼풀의 모양에서 특징을 나타내기 위해서 사용되는 부분은 위, 아래의 눈꺼풀을 이동하도록 하였다. 눈꺼풀의 위, 아래 각각 중심을 축으로 이동하도록 하였고 역시 이동할 수 있는 위치를 4로 나누어 움직이도록 하였다.
그림 7은 입모양의 움직임을 표현하고 있는데 입모양의 움직임은 눈 부위와 독립적으로 작동되면 특징을 표현하기 위하여 아래 입술과 입의 좌우 끝

표2. 얼굴 각 기관의 움직임

점이 상하로 이동할 수 있도록 하였다. 윗입술은 고정이 된 상태로 존재하며 이는 사람의 입모양의 구조를 고려하여 설계하였다. 입모양 역시 움직일 수 있는 위치를 4로 나누어 표정을 더욱 특징적으로 나타낼 수 있도록 설계하였다.
표 2는 이와 같은 각 기관의 움직임을 표로 정리한 내용이다. 그림 8은 컴퓨터 그래픽으로 이와 같은 표정을 전체적으로 시뮬레이션 한 것이다.
이와 같이 얼굴의 각각의 기관을 독립적으로 제어하고 각 기관의 제어 위치를 동일하게 적용함으로써 다음과 같은 장점을 얻을 수 있다.


(a) neutral (b) happiness (c) anger

(d) surprise (e) disgust (f) sadness

(g)fear
그림 8. 컴퓨터 그래픽으로 시뮬레이션 한 얼굴의 표정


(a) neutral (b) happiness (c) anger

(d) surprise (e) disgust (f) sadness

(g)fear
그림 9. 실제 로봇의 표정

1. 각 기관별로 움직일 수 있는 정도를 나누어 세분화하여 표현함으로써 표정의 변화를 명확히 할 수 있다.
2. 상하, 좌우만으로 움직이며 모든 표정 생성에서 각 기관별로 같은 제어 위치에서 움직임으로써 제어가 용이히다.
3. 감정모델과 연동하여 변화를 명확히 파악할 수 있다.
그림 9는 실제 제작된 로봇의 얼굴 표정이다. 제작된 프레임에 인형을 입힘으로써 프레임만으로 표현하였을 경우보다 친근감을 줄 수 있었지만 컴퓨터 그래픽 상에서 시뮬레이션 하였을 경우에 비해 프레임의 움직임이 정확히 반영되지 않는 단점이 있다. 그러나 기본적인 감정의 변화를 파악하는데 큰 지장을 주지 않는 것을 확인할 수 있다.

4. 인간과 상호작용을 위한 영상처리
사람과 로봇의 상호작용을 위해서는 영상, 음성, 센서들을 사용할 수 있지만 인간의 시각에 해당되는 영상의 처리가 가장 중요한 부분이라고 할 수 있다. 영상의 처리를 통하여 로봇은 인간의 얼굴을 인식하고 제스처, 자세 등을 이용하여 인간과 상호작용을 할 수 있다.
영상의 처리를 통한 상호작용에서 선행되어야 할 것은 로봇의 입력 영상을 사람의 얼굴을 추적하는 것이다. 사람이 상대방과 대화할 때 자연스럽게 서로의 얼굴을 쳐다보고 눈을 마주치고 대화하는 것과 같이 로봇이 사람의 얼굴 영역을 추출하여 위치를 파악하여 사람과 사람이 대화하는 것과 같은 효과를 위해 필수적이다.
또한 본 연구에서 로봇과 상호작용하는 사용자마다 개별적인 서비스를 제공하기 위해서는 얼굴 인식이 필수적이다. 얼굴 인식 시스템은 제한된 영역에 사용자의 권한을 인증하거나 수사의 목적으로 범인의 얼굴을 인식하여 수사에 사용하기 위한 목적 등으로 활발히 연구되고 있는 분야이다. 그러나 감정 표현 로봇에서는 아직 얼굴 인식을 통한 사용자의 구분을 하지 않았지만 본 연구에서는 보다 사람과 같은 행동을 위하여 얼굴 인식을 구현하였다. 뿐만 아니라 표 1에서 보는 바와 같이 로봇에 대한 외부 자극으로 색상의 인식, 특정 물체에 대한 인식을 통하여 감정모델에 대한 입력으로 사용한다.
이러한 영상처리 분야의 가장 큰 문제 중 하나는 조명의 영향이다. 테스트 환경에서 적절한 기능을 수행하던 시스템도 조명이 다른 환경에서는 명암 또는 그림자의 영향으로 인해 전혀 다른 결과를 보이는 경우가 많다. 따라서 본 연구에서는 이러한 조명의 영향을 최소화 할 수 있는 방안을 제시한다.
또한 로봇에서 사용하기 위한 영상처리의 특성상 정지 영상에서의 처리가 아니라 연속적인 영상에서의 처리가 필수적이다. 이와 같은 경우 연산의 처리가 과다할 경우 전체적인 시스템의 성능에 많은 영향을 주게 된다. 따라서 본 연구에서는 이러한 연속 영상에서 사용하기에 적합한 성능을 보장할 수 있는 시스템을 제안한다.

4.1 얼굴 영역의 추적
얼굴 영역의 추적은 인간과 로봇의 상호작용을 위해 가장 선행되어야 할 조건이다. 인간과 인간이 서로 마주보고 대화하듯 로봇과 인간이 서로를 마주보고 상호작용을 하기 위해 가장 선행되어야 하는 조건이다.
인간의 얼굴 영역 추적은 활발히 연구되고 있는 분야이다. 그러나 대부분의 기존 연구는 실시간 환경에서 사용하기 미흡하거나 조명의 영향을 많이 받기 때문에 본 연구에서 지향하는 바를 만족하지 못한다.
단순히 인간의 얼굴 색상을 이용하여 추출하는 방법[13], 인간의 얼굴 윤곽을 추출하여 윤곽선의 에너지를 이용하는 방법[14], 얼굴에서 눈, 코, 입과 같은 특징을 추출하는 방법[15]등 고전적인 얼굴 추출 방법들은 컴퓨터 내의 연산이 매우 많이 필요하고, 조명의 영향을 많이 받는 단점이 있다.
최근 활발히 연구되고 있는 방법 중 하나의 얼굴 영역의 특징들을 학습을 통하여 저장하고 이를 매칭하는 방법이다. 이와 같은 방법 중 대표적인 것이 Haar-like feature를 사용하는 방법이다. 효율적인 인식자를 바탕으로 얼굴 검출에 사용하게 얼굴을 배경으로 판단할 확률이 매우 작아지게 된다. 뿐만 아니라 특징 값을 구하는데 요구되는 계산양은 단순히 합 연산 밖에 없기 때문에 빠른 얼굴 검출을 요하는 응용분야에서 사용될 수 있다.[16] 그러나 이와 같은 방법을 적용하였을 경우 다음과 같은 문제점이 발생하였다.
1. 스트리밍 영상에서 Haar-like feature를 사용하였을 경우 인식 도중 사람을 찾지 못하는 프레임이 발생하여 연속적인 처리가 어려워진다.
2. 영상 내에 여러 사람이 존재할 경우 모든 사람을 찾아 원하는 사람을 다시 구별해 내야하는 경우가 발생한다.

그림 10. RGB와 HSV의 변환 관계
3. 색상기반의 영역 검출에 비해 연산의 양이 많아 속도의 저하를 가져온다.
따라서 본 연구에서는 색상기반의 CAMSHIFT 알고리즘을 실시간 환경에 맞게 변형하여 적용하였다.(17) CAMSHIFT는 색상기반의 영역추적 알고리즘이다. 그러나 일반적으로 컴퓨터 그래픽스에서 사용하는 RGB색상모델의 경우 조명에 따라 값이 변화가 심하기 때문에 컴퓨터 비전에서는 이를 다른 모델로 변환하여 사용하는데 CAMSHIFT의 경우에는 HSV라는 색상모델로 변환하여 사용하였다. RGB모델과 HSV색상모델의 관계는 그림 10과 같은데 이와 같이 변환하였을 경우 R,G,B의 세 가지의 값을 계산사는 것이 아니라 색상(Hue)에 대한 1차원 데이터를 얻을 수 있다.[18] 실제 테스트 결과 RGB를 사용하였을 경우 조명의 영향이 너무 커 테스트 하는 환경마다 얼굴색의 R,G,B의 임계영 역을 계산해야 하는 문제가 발생하였으나 HSV의 경우 조명의 영향을 완전히 없앨 수는 없었지만 만족할 만한 결과를 얻을 수 있었다. 이와 같이 변환된


그림 11. CAMSHIFT의 전체 흐름도
모델에서 색상의 값인 H만은 추출하여 1차원 히스토그램을 얻을 수 있다. CAMSHIFT알고리즘은 Mean Shift라는 영역 검출 알고리즘을 스트리밍 환경에서 사용하기 위해 개선한 것인데 CAMSHIFT알고리즘의 전체적인 처리는 그림 11과 같다.
그림 11의 다이어그램에서 회색의 영역이 Mean shift 영역 검출 알고리즘인데 Mean Shift알고리즘의 처리 순서는 다음과 같다.[19]
1. 초기 검색 영역(Search window)의 크기를 결정한다.
2. 초기 검색 영역의 위치를 결정한다.
3. 검색 영역 내에서 중심 위치(Mean location)을 결정한다.
4. 3에서 구한 중심 위치에 검색 영역의 중심을 맞춘다.
5. 3,4를 반복한다.
  이러한 mean shift는 그림 12와 같이 진행되는데 그림 12에서 자주색 영역은 살색의 분포를 나타낸다. 넓게 분포된 자주색 영역은 얼굴의 분포를 나타내고 좁게 분포된 자주색 영역은 손의 분포를 나타낸다. 또한 노란색 영역은 검색 영역를 나타내고 파란 색의 화살표는 중심위치를 나타낸다.


그림 12. Mean shift의 순차적 처리 과정
step1을 보면 초기의 검색 영역의 크기와 위치를 지정하였는데, 검색 영역의 크기는 1보다 가장 작은 홀수인 3부터 시작하는 것으로 설정이 되었다. 연속되는 단계를 통하여 검색 영역이 커짐을 알 수 있고 넓게 분포된 자주색 영역이 끝나는 부분에서 검색을 완료하는 것을 알 수 있다. 이를 통하여 검색 영역이 결정되고 정확하게 얼굴의 영역만을 추출하는 것을 알 수 있다. 이를 통하여 얼굴과 손이 동시에 있는 경우 정확히 얼굴 영역만을 추출할 수 있다.
이와 같이 연산된 mean shift 알고리즘은 정지영상에서 뛰어난 성능을 보이는 것으로 알려져 있다. 그러나 이와 같은 연산은 위에서 지적한 연산의 양을 줄이는 데에는 큰 효과를 얻지 못함을 알 수 있다. 따라서 이와 같은 문제를 해결하기 위해 CAMSHIFT(Continuous Adaptive Mean Shift)가 제안되었는데 CAMSHIFT의 전체적인 처리 순서는 아래와 같다.
1. 초기 검색 영역의 위치를 결정한다.
2. Mean Shift를 적용한다 : 이를 0번째 데이터로 저장한다.
3. 2에서 찾은 중심위치의 값게 맞추어 검색 영역을 세팅한다.
4. 2,3을 반복한다.
   이와 같은 Flow Sequence를 간략하게 그림으로 설명하면 그림 13과 같은데 그림 13의 step1을 자세히 살펴보면 위의 Mean Shift알고리즘을 설명한 그림에서 자주색 영역이 왼쪽으로 이동한 것을 발견할 수 있다. step2에서는 노란색의 검색 영역의 좌우 1.2배의 영역에 대해서만 연산을 하여 노란색의 검색 영역을 이동된 부분에 적용하여 다음의 검색 영역을 설정할 수 있다.
  이와 같이 CAMSHIFT에서는 검색 영역의 설정과 초기의 히스토그램이 매우 중요한 역할을 한다. 초기의 이진화된 히스토그램을 바탕으로 연속적으로 저장되어 다음 프레임에서 참조되어 사용이 되기 때문에 처음 살색 영역에

그림 13. CAMSHIFT의 처리 순서

(a) 얼굴 영역 검색 (b) 손의 간섭이 배제된 얼굴 영역
그림 14. 추적된 얼굴 영역

대해 이진화된 히스토그램이 저장되면 이 검색 영역 내에서 연속적으로 살색영역에 대해 반응을 한다. 또한 검색 영역은 원하는 영역  이외의 부분에 대해 연산을 배제하는 역할을 하기 때문에 연산의 양을 줄일 수 있고 검색 영역 밖에 있는 다른 사람의 얼굴이나 손 등의 간섭을 줄일 수 있다. 그림 14 (a)는 얼굴 영역의 검색이 완료되어 추적되고 있는 모습이다. 그림 14 (b)는 얼굴 영역에 손과 팔의 간섭이 발생하였을 경우 이를 배제하고 얼굴 영역만을 지속적으로 처리하는 모습이다.

4.2 얼굴 인식
얼굴인식은 제한된 영역에 대한 보안이나 검색을 위해 활발히 연구되고 있는 분야이다. 그러나 얼굴 인식은 얼굴 영역의 추적의 문제와 마찬가지로 조명의 영향을 많이 받고 오인식의 경우 큰 문제가 발생할 수 있기 때문에 아직까지는 제한된 분야에서 연구가 진행되고 있다.
본 연구에서는 기존에 개발되었던 Kismet이나 WE-RIV4등과 같은 감정 표현 로봇에서 연구하지 않은 얼굴 인식을 구현하여 개인별로 감정을 저장하여 이에 맞는 감정을 제시하기 위해 얼굴 인식을 개발하였다. 예를 들면, 평소에 호감을 가지고 있는 사람과 그렇지 않은 사람을 나누어 서로 다른 감정의 상태를 보이고, 개인에 따른 감정을 누적하고 저장하여 이에 맞는 감정을 표현하는 것이다. 이를 위해, 본 연구를 통하여 이러한 감정을 표현하기 위한 기반

그림 15. 1차원 HMM의 실행 단계

이 되는 얼굴 인식을 개발하게 되었다.
얼굴 인식을 위한 기존의 연구에서 기본적인 아이디어는 기하학적인 특징 기반의 방법[20], 템플릿 기반의 방법[21] 등을 포함하여 특징을 어떠한 단위로 coding하여 학습하고 이에 따른 Matching으로 처리하는 것이다.
  또한 오인식률을 줄이기 위하여 얼굴인식 시스템은 다양한 조건, 다양한 조명이나 배경에서 작동을 보장하여야 한다. 이를 위하여 본 연구에서는 embedded HMM이라는 알고리즘을 사용하여 얼굴인식을 처리하였다.
HMM은 음성인식처럼 1차원으로 모델링되는 데이터의 인식에 많이 사용되어 왔다. 얼굴인식의 분야에서도 1차원 HMM을 사용하려는 시도가 많이 있었다. HMM의 기본적인 아이디어는 얼굴의 각각의 영역을 할당된 1차원의 HMM이미지로 모델링 한 후 이에 대한 매칭을 하는 것이다. 그림 15는 1차원 HMM의 간단한 처리 과정을 보이고 있다.
이와 같은 1차원 HMM은 85%정도의 인식률을 보이는 것으로 알려져 있다.[22] 위의 1차원 모델을 확장한 2차원 HMM의 경우 Samaria에 의해 확장되었는데, 이미지의 각각의 라인에 marker 블럭를 더하고 그림 16에서 보는 것과 같이 end-of-line 상태를 소개하면서 2차원 HMM을 제시하였다.[23] 그림 16 (a)에서 검은 색으로 표현된 상태가 end-of-line 상태인데 end-of-line 상태는 두가지 전이가 가능하다. 
1. 상태의 각각의 열의 시작점으로 되돌아가는 전이
2. 상태의 다음 열로 전이
이와 같은 두가지 이다.

 
(a) (b)
그림 16. 2차원 HMM의 실행 단계

예를 들어, forehead라고 되어 있는 일련의 블록을 검색한 후, 비교평가한 결과가 타당하면 end-of-line 상태에서 다음의 eye로 표현되어 있는 일련의 블록의 처음으로 전이가 되는 것이다. 이것이 마지막의 chin까지 비교하여 타당한 값을 보이면 사람을 인식하게 되는 것이다.
  또한 Samaria는 end-of-marker 블럭을 제거한 그림 16 (b)와 같은 의사 HMM을 제안하였다. 이전 모델과 달리, 프레임의 새로운 슈퍼 상태로(열의 끝에 있지 않은) 전이를 허가한다. Samaria는 두가지 모델이 90-95%의 비슷한 인식률을 보인다고 보고하였다.[23]
이와 같이 인식률을 높이기 위하여 2차원 HMM 알고리즘을 적용하고자 하는 연구가 많이 있었는데 2차원 HMM은 실시간 얼굴인식에 너무 복잡한 알고리즘이여서, 본 연구에서는 embedded HMM을 사용한 새로운 얼굴인식 방법을 적용하였다.[24] embedded HMM을 적용하여 얼굴 인식을 테스트 해 본 결과 실시간 얼굴 인식에 사용이 가능할 정도의 실행시간과 정확도를 보였다. 아래 그림 17은 embedded HMM의 기본적인 아이디어를 그림으로 표현한 것이다.
embedded HMM에서  1차원 HMM은 여러 개의(유한한 개수) 가진 Markov chain이다. HMM이 상태 i에 있을 때, 결과는 주어진 조건확률 밀도 함수에 따라 결정된다. 즉, 이전 상태에서 다음 상태로 갈 수 있는 확률 함수
 
그림 17. embedded HMM의 실행 단계

를 구성하여 이에 따라 상태의 전이를 보이는 것이다. HMM을 통계적으로 특징화시키는 데 필요한 것은 상태전이 확률 행렬과 초기 상태 확률 분포, 각각의 생태의 관찰과 연관된 확률밀도 함수의 집합이다. 이러한 방법으로 HMM은 슈퍼 상태의 집합으로 구성된다. embedded HMM은 그림 18과 같이 나타낼 수 있는데 embedded HMM은 연산을 더욱 줄이는 것이 observation vector라는 개념이다. 그림 18은 observation vector를 그림으로 간단히 표현하고 있다.
데이터베이스로 저장되는 각각의 그림에 대하여 인식을 위해 각각의 픽셀을 비교한다면 연산의 너무 많아지게 될 것이다. 또한 인식에 대한 일정한 기준을 가지는 값이라 판단하기 힘들 것이다. 이를 위해 각각의 이미지를 vector값으로 coding을 하게 되는데 이를 observation vector이라 한다. 이를 개략적으로 설명하여 데이터베이스가 되는 이미지를 일정한 크기의 블록으로 분할

 
그림 18. embedded HMM에서 observation vector

그림 19. embedded HMM의 실행 결과

한다.  또한 이 과정에서 각각의 블록이 겹치게 분할을 함으로써 각각의 블록이 연관성을 갖게 한다. embedded HMM에서는 이러한 블록의 값을 coding하기 위해 2-D DCT를 사용하여 vector값을 얻게 된다. 이는 다른 coding방법에 비해 데이터의 양을 줄이는 데 매우 효율적이다. 이와 같이 coding된 값이 위와 같이 각각의 상태로 저장이 되어 이 값의 비교 연산을 통하여 가장 유사한 이미지를 찾게 된다. 
그림 19는 embedded HMM을 이용하여 얼굴 인식을 구현한 결과를 보여준다. 붉은 색 박스가 가장 유사한 값을 보인 사람을 출력하였음을 보여주고 있다.
5. 실험

5.1 실험의 구성
본 연구에서 설계한 로봇은 얼굴의 표정을 표현하기 위한 총 23개의 서보모터로 이루어져 있다. 그림 20에서 보는 바와 같이 외부 자극을 받아들이기 위한 센서의 역할로는 영상의 입력을 위한 USB카메라, 음성의 입력을 위한 마이크, 충격에 대한 반응을 위한 터치센서, 밝기를 파악하여 어두운 조명에서는 로봇이 취침을 취할 수 있도록 조도센서, 그리고 자세를 보정하기 위한 기울기 센서로 구성된다. 카메라와 마이크를 제외한 모터와 센서들은 8bit마이크로프로세서 상에서 실시간 운영체제 하에서 작동한다.
소프트웨어는 사용자를 위한 어플리케이션과 로봇과 상호연동을 위한 어플리케이션 그리고 감정모델과 행동모델로 구성된다. 사용자로부터에게는 사용자별 서비스를 제공하는 어플리케이션과 원격에서 로봇에 접속하여 사용할 수 있는 어플리케이션으로 구성된다. 로봇에 연결된 카메라와 마이크로부터 입력을 받아 제어하는 영상인식과 음성인식을 위한 어플리케이션을 구성하여 로봇이 시각과 청각을 가질 수 있도록 하였다. 감정모델 및 행동 모델은 영상처


그림 20. 전체적인 실험의 구성
리와 음성인식으로부터 입력을 받고 로봇에 부착된 센서들로부터 직접 입력을 받기도 한다. 이와 같은 소프트웨어는 PC상에서 작동된다.

5.2 하드웨어 설계
프래임 설계는 기본적으로 기존의 감정 표현 로봇인 MIT의 KISMET 또는 와세다대의 WE-3RIV의 로봇처럼 사람이 보기에 편안한 느낌을 주는데 주안점을 두었다.
그림 21은 로봇의 목부분 설계와 전체적인 골격의 설계이다. 기본구조는 사람의 골격에서 찾아 사람의 골격과 유사하게 제작함으로써 사람의 움직임을 모방 할 수 있도록 설계하였고 표정 생성에 필요한 제어위치를 고려하여 설계되었다. 본 연구에서 사용되는 로봇은 무게가 목에 집중되는 만큼 목 부분은 다른 프래임과는 별도로 무게를 크게하여 위쪽의 움직임에 영향을 적게 받도록 설계하였다.
로봇의 각 기관별 동작을 정리하면 프레임의 동작 정리하면 목은 좌-우 상-하에 해당되는 움직임을 갖는다.(2-DOF) 입술은 가운데 지점은 고정시킨 상태에서 아랫입술의 가운데 지점으로 입술을 벌려주고 좌우에 끝 점에서 위-


(a) 목 부분의 설계 (b) 전체적인 설계도면
그림 21. 실험 로봇의 설계도


(a) 목의 움직임 (b) 입의 움직임

(c) 눈꺼풀의 움직임 (d) 눈썹의 움직임 (e)귀의 움직임
그림 22. 실험 로봇의 각 기관의 모습과 각각의 움직임

아래로 움직임으로써 입술모양을 만들어 낸다.(4-DOF) 눈동자는 좌우로 움직임을 갖는다.(4-DOF) 아래 눈꺼풀은 위-아래로 움직이고 윗 눈꺼풀은 상-하로 기울임을 가지면서 위-아래로 의 움직임을 가진다.(4-DOF) 눈썹은 기본적으로 상-하 기울임을 가지며 1/3, 2/3 지점에서 각각 움직임을 가짐으로써 다양한 모양이 가능하다.(3-DOF) 귀는 앞-뒤로 움직이는 동시에 좌-우로 기울임을 가짐으로써 다양한 움직임이 가능하다.(2-DOF) 그림 22는 로봇의 각 기관과 그 움직임을 나타낸 것이다.
그림 23는 이와 같은 각 기관에 대한 설계가 완성된 것을 보인다. 또한 그림 23 (a)는 사람과 친근함을 주기 위해서 인형을 이용하여 장식한 로봇의 모습이다.

5.3 로봇의 제어
로봇의 제어는 8bit마이크로프로세서를 사용하여 제어하였다. 그림 24

(a) 완성된 로봇 프레임 (b) 인형을 씌운 로봇
그림 23. 완성된 로봇의 설계

와 같이 각각의 모듈은 마이크로프로세서에 연결되고 PC와는 시리얼통신(RS-232)을 사용하여 데이터를 주고받는다. 모터는 마이크로프로세서에서 지원하는 타이머를 사용하여 하나의 타이머를 통하여 8개의 모터를 제어한다. 모터의 제어는 마이크로프로세서에서 생성되는 펄스폭 변조(PWM)을 통하여 제어하게 된다. 각각의 센서는 역시 마이크로프로세서에서 지원하는 아날로그-


그림 24. 제어 모듈의 구성

그림 25. 실시간 운영체제 구성도

디지털 변환기를 사용한다. 센서의 데이트는 기본적으로 아날로그적인 데이터이지만 이를 마이크로프로세서 및 PC에서 제어하기 위해서는 디지털 데이터로 변환해서 사용하게 된다.
모터 및 각각의 센서는 실시간 운영체제에 의해서 제어된다. 실시간 운영체제의 장점으로는 각각의 모듈을 태스크로 구성하여 태스크의 우선순위에 따라 실시간으로 제어간으로 제어가 가능한다. 예를 들어 모터 제어의 경우 우선순위가 가장 높게 부여되어 있는데 이 경우 로봇에 다른 센서 데이터가 들어오고 있더라도 강제적으로 우선순위가 높은 모터의 제어가 가능하게 된다.[24] 또한 태스크로 구성된 각각의 모듈은 독립적으로 제어가 가능하기 때문에 향후 다른 센서 및 모터가 추가되더라도 쉽게 적용하여 확장이 용이하다.

5.3 영상처리 소프트웨어
로봇에 부착된 두 개의 카메라는 각각 다른 용도로 사용하였다. 하나는

그림 26. 영상처리 소프트웨어 구성도

영상의 처리를 위하여 사용하였으며 다른 하나는 원격에서 가정 내의 상황을 볼 수 있도록 하였다.
영상처리 소프트웨어는 크게 얼굴 추적, 얼굴 인식, 색상인식, 사물인식으로 구성된다. 전체 소프트웨는 구현의 편이와 속도의 문제를 고려하여 영상처리 라이브러리인 OpenCV와 마이크로소프트의 미디어 처리 기술인 DirectShow를 사용하였다.[25][26]
얼굴의 추적은 CAMSHIFT 알고리즘을 사용하였다. 추적되는 얼굴의 모터의 움직임과 연동되는데 위에서 기술한 바와 같이 카메라 하나를 통해 영상처리를 하였기 때문에 사람과의 거리 정보를 알 수 없었다. 따라서 정밀한 각


(a) 카메라 시야각 (b) 가상 격자를 통한 중심 보정
그림 27. 카메라 시야각과 중심의 이동
도 제어를 위해 카메라의 시야각을 사용하였는데 보통의 USB카메라가 가지고 있는 일정한 시야각을 이용하였다. 그림 5-A와 같이 보통의 USB카메라는 30도의 시야각을 가지고 있다. 좌우 / 상하의 2차원적인 데이터를 이용하여 영상을 1도의 간격으로 논리적인 격자를 형성하고 중심에서 떨어져 있는 정도를 각도로 계산하여 로봇에게 전달하였다. 모터의 특성상 정수단위의 각도로 제어되기 때문에 이와 같이 1도의 간격으로 격자를 형성하게 되면 로봇의 제어가 더욱 용이해지게 된다.
사물의 인식은 얼굴 인식에서 사용하였던 eHMM을 사용하였다. eHMM에서 입력되는 영상 정보를 일정한 블록으로 나누어 각각의 값을 코딩하는 것을 이용하여 본 연구에서 사물인식에서 사용한 지폐의 인식에 이를 적용하였다. 얼굴의 정보와는 차이가 있기 때문에 지폐의 특성에 맞게 블록을 구분하였다. 또한 사물을 인식할 때 얼굴을 인식하는 경우가 발생하지 않도록 얼굴의 테이터와 사물의 데이터를 따로 저장하여 혼동되는 경우가 발생하지 않도록 하였다.

5.4 음성인식 및 합성
음성 인식은 현재 활발한 연구에도 불구하고 아직까지 완벽한 음성인식을 선보이지 못하고 있다. 본 연구에서도 완벽하게 음성을 인식을 하는 수준이 아니라 저장되어있는 데이터와 매칭을 통해 인식을 하는 방법을 사용하였다.


그림 28. 마이크로소프트 음성 개발도구의 구성
기존에는 하드웨어 모듈을 사용하여 입력된 몇 가지 단어에 대한 인식 기능을 많이 사용하였는데 본 연구에서는 공개 음성인식 엔진인 엘리자(ELIZA)기반의 마이크로소프트의 개발도구를(SAPI SDK) 이용하였다.[27] 개발도구는 그림 28과 같이 구성되어 있는데 음성인식 과 텍스트를 음성으로 변환하는 기능(text-to-speech)을 구현하였다. 개발도구를 이용하여 개발 할 수 있다. 본 연구에서는 이를 통하여 기존의 하드웨어적인 모듈을 사용할 경우보다 훨씬 더 많은 양의 음성을 인식할 수 있고 단어뿐만 아니라 짧은 문장도 어느 정도 인식이 가능하였다. 입력 문장에 대하여 적절한 답변을 하는 소프트웨어를 튜링 머신(Turing Machine)이라 하는데 본 연구에서 사용한 튜링 머신 엔진은 XML기반의 AIML을 이용하였다. AIML(Artificial Intelligence Markup Language)은 Richard Wallace 박사가 만든 비표준 대화 로봇용 표현 언어로 XML 문법을 따른다. 첫 번째 설계 목표로 단순화를 꼽은 만큼 다른 대화 로봇용 언어에 비하여 사용이 간단하다. 주요 기능은 패턴 매칭을 XML 태그를 이용한 템플릿을 통하여 쉽게 구현해주는 것이다. 본 연구에서는 일반적인 경우에 입력 문장에 대해 41,000 categories의 예제 문장 중에서 적절한 대답을 해 주도록 하였다. 그림 29는 하나의 예제를 보이고 있는데 “How are you"라는 질문에 대해 적절한 답변을 반환한다.
이와 같이 튜링 머신(Turing Machine) 에서 생성한 응답 문장을 음성으로 대답해 주도록 하였다. 또한 로봇이 말할 때 로봇의 입 부분과 동기를 맞춰

<aiml>
<category>
<pattern>HOW ARE YOU</pattern>
<template>
<think><set name="topic">Me</set></think>
I am the latest result in artificial intelligence,
which can reproduce the capabilities of the human brain
with greater speed and accuracy.
</template>
</category>
</aiml>
그림 29. “HOW ARE YOU”에 대한 AIML예제

그림 . 음성 인식 및 합성 소프트웨어

실제로 말하는 것처럼 보이는 동작을 추가하므로써 사람과 대화하는 듯한 느낌을 더하였다. 또한 여기에 감정에 따라 속도와 볼륨을 조절함으로써 목소리를 다르게 하였는데 예를 들면 Sad 상태라면 속도와 볼륨를 낮추고 Anger 상태면 말을 빠르게 한는 등의 동작을 하도록 하였다.

5.5 개인 서비스 구현
본 연구에서는 이전의 감정 표현 로봇에서 나아가 앞으로 다가올 로봇의 시대에 감정 표현 로봇이 제공할 수 있는 사용자 서비스를 모색하였다. 본 연구에서 제공하는 서비스로 크게 두 가지로 나눌 수 있는데 첫째는 얼굴 인식을 기반으로 개별적인 사용자에 대해 맞춤형 서비스를 공하는 것이다. 사용자가 얼굴 인식을 통해 로그인을 하게 되면 처음에 저장한 거주 시역에 대한 날씨, 사용자가 좋아하는 음악, 그리고 인스턴스 메신저를 제공한다. 이와 같은 서비스는 웹 기반으로 되어 있으며 웹 서비스를 사용하게 된다. 웹 서비스를 사용하는 이유는 현재 각광받고 있는 웹 서비스를 사용하여 향후 이러한 웹 서비스 컨텐츠가 늘어나게 되면 원하는 서비스를 웹상에서 간단한 인터페이스만으로 추가가 가능하게 되기 때문이다. 그림 30은 본 연구를 통해 제공하고 있는 서비스를 보이고 있다. 그림 30에서 보는 바와 같이 로그인된 사람의 거


그림 30. 실험 로봇이 제공하는 컨텐츠

주 지역 날씨, 음악 리스트, 그리고 보편적으로 사용하는 인스턴스 메신저 화면을 볼 수 있다. 그림 1-b는 마이크로 소프트의 라이브 커뮤니케이터 화면으로 기본적으로 제공되는 화상채팅 기능을 이용할 수 있다. 화상 채팅의 경우 본 연구에서 구현한 얼굴 추적 기능을 사용하여 보다 원활한 화상 채팅을 제공할 수 있다.
두 번째 서비스는 원격에서 로봇을 제어하고 대화를 하는 것이다. 위에서


그림 31. 원격에서 접속하는 어플리케이션

기술한 로봇과의 채팅 기능을 이용하여 사람과 사람이 대화를 하는 것이 아니라 외부에서 사람과 로봇이 대화를 하는 것이다. 그림 31는 원격지에서 사용이 가능한 어플리케이션을 보이고 있는 이를 통하여 간단한 현재 가정 내의 상황을 알 수 있고 단순한 재미를 위해 사용 가능하다. 또한 로봇에게 일정한 명령을 지정하여 로봇의 목을 제어하여 가정내의 원하는 곳을 카메라를 통해 확인할 수 있으며 사람과 사람이 대화하는 것이 아니라 가정의 로봇과 대화를 나눌 수 있다. 이를 통해 가정의 상황, 예를 들어 온도나 습도 등과 같은 가정의 상황을 알 수 있으며 리모콘을 부착하여 가정의 기기를 제어할 수있다.
6. 결론 및 토의

6.1 결론
본 연구에서는 사람의 시각에 해당하는 영상의 처리를 주요 감각으로한 감성 지능형 로봇을 설계하였다. 감정 모델의 경우 이전의 연구보다 진화된 3차원의 모델을 제시하였는데 여러 가지 외부 자극을 입력하였을 경우 감정의 변화가 자연스럽게 전이되었다. 또한 계층화된 감정 모델은 게임 세계에서 캐릭터의 감정을 실제 로봇에 적용하여 단순히 어떤 영역으로 움직였을 경우 반응하였던 이전의 로봇들에 비해 보다 인간의 감정의 가까운 반응을 확인할 수 있었다. 예를 들어, 로봇에게 충격을 가하였을 경우 감정 모델만을 적용하였을 경우 여러 번의 충격을 지속적으로 가하였을 경우에 반응하였는데 이 경우 실제 인간의 반응과 다름을 알 수 있었다. 그러나 계층화된 감정 모델을 통하여 이러한 자극에 대해 즉각적으로 반응함으로써 보다 인간에 가까운 반응을 확인할 수 있었다.
얼굴 표정의 경우 이전의 로봇들에 비해 보다 체계적이고 뚜렷한 감정변화를 만들었다. 컴퓨터 그래픽으로 구현한 얼굴 표정의 경우 실제 인간의 일반적인 표정과 유사한 표정을 만들어낼 수 있었다. 이를 로봇에 적용하였을 경우에는 컴퓨터 그래픽으로 구현한 것보다는 표정의 변화가 적었지만 얼굴의 표정으로 감정을 나타내는 데에 충분한 성과를 얻을 수 있었다.
로봇에 대한 가장 중요한 자극으로는 카메라를 통한 시각이었는데 로봇의 특성인 실시간성에 적합한 모델을 구현하였다. CAMSHIFT 알고리즘은 현재 가장 실행시간이 빠른 추적 알고리즘으로 이를 로봇에 적용하였을 때 일반 캠코더와 비슷한 수행 속도를 확인할 수 있었다. 또한 추적이 진행되는 동안에도 실행속도가 느려지지 않음을 확인할 수 있었다. 얼굴 인식은 이전의 감성 지능형 로봇에서 구현되지 않은 부분인데 얼굴 인식을 통하여 본 연구에서 구현하고자 하였던 인식된 개인별 서비스를 제공하는 데 사용되었다. 본 연구에서 사용한 embedded HMM의 경우 85%이상의 신뢰도를 확인할 수 있었다. 또한 여타 알고리즘에 비해 실행시간이 빨라 로봇의 실시간성에 부합하였다.
그 외 실제 서비스 모델을 제시하였고 이를 통하여 앞으로 단순히 걷거나 이동을 통하여 제공하는 서비스가 아닌 감성 지능형 로봇이 실제 인간과 함께 생활하고 인간의 삶에 유용한 서비스를 제공할 수 있음을 확인할 수 있었다.

6.2 문제 인식 및 향후 과제
인간의 감정을 정형화된 모델로 사용함으로써 감정의 변화를 분명히 확인할 수 있었지만 인간의 감정을 본 연구에서 모델링한 부분 이외의 요소들이 더욱 많음은 자명하다. 특히 여러 개의 자극이 동시 다발적으로 일어났을 경우 인간의 감정 변화를 모델링 한다는 것은 어려운 일이다. 본 연구에서는 외부 자극은 순차적으로 한 번에 하나의 입력이 들어오는 것을 가정하였지만 보다 사실적인 감정의 변화를 위해서는 동시에 여러 가지 입력이 들어오는 경우의 감정의 변화에 대한 연구가 필요하다. 또한 계층화된 감정 모델을 사용하여 보다 인간의 감정 변화와 유사한 변화를 확인하였지만 보다 사실적인 감정의 변화를 위해서는 즉각적인 반응이 필요한 자극과 그렇지 않은 자극을 구분해야 한다. 이를 위해 향후 연구를 위해 인간의 조건 반사와 무조건 반사등과 같은 즉각적인 반응과 그렇지 않은 반응에 대한 연구를 통하여 외부 자극 자체를 계층화하여 사용하여야 한다.
얼굴 표정은 실험의 사용한 모터의 크기와 무게의 제한으로 실제적인 표정을 만드는 것이 용이하지 않았다. 이전의 연구에 비해 저가의 장비만으로 효과적인 결과를 얻을 수 있었다. 그러나 프레임만으로는 실제 표현이 용이하지 않아 프레임 위에 인형을 통하여 표현하였는데 인형을 씌움으로써 보다 친근한 모습을 만들 수 있었지만 얼굴 표정의 표현에 어려움이 있었다.
또한 본 연구에서는 앞으로 감성 지능형 로봇이 인간과 공존하기 위해 서비스 모델을 제안하였다. 그러나 감성 지능형 로봇뿐만 아니라 시판 예정중인 로봇 또한 아직 소비자들에게 검증받지 않은 상태이다. 따라서 향후 감정 지능형 로봇이 인간과 함께 생활하기 위해서는 향후의 시장에서 인정받는 로봇의 서비스들을 흡수하고 더욱 많은 컨텐츠를 제공할 수 있도록 지속적인 연구가 필요하다.
참고문헌

[1] K.Oatley and J.M.Jenikins, "Understanding Emotions", Blackwell publishers Inc., 1966
[2] A. Ortony, G.L.Clore, and A.Collins, "The Cognitive structure of Emotions", Cambridge university Press, 1988
[3] K.Ekman, "Are there basic emotion?", Psychological Review, 99(3), pp.550-553, 1933
[4] 인터넷 기반의 퍼스널 로봇
[5] Juan D. Velasquez, "An Emotion-Based Approach to Robotics", Proceedings of IEEE International Conference on Intellegent Robots and Systems, pp.235-240 vol.1, 1999
[6] Cynthia Breazeal, "Robot in Society : Friend or Appliance", Agent 99 workshop on emotions-based agent architectures, pp 18-26. 1999
[7] Hiroyasu Miwa, Tomohiko Umetsu, Atsuo Takanishi, Kideaki Takanobu, "Robot Persnality based on the Equations of Emotion defined in the 3D Mental Space", Proceeding of IEEE International Conference on Robotics and Automation, pp2602-2607 vol.3, 2001
[8] Cynthia Breazeal, "Emotion and sociable humanoid robots",
[9] http://www.gamesutra.com/features/19990507/artificial_emotion_01.htm
[10] Paul Ekman, Wallace V. Friesen, "Facial action coding system, Psychologists Press, 1977
[11]Hiroshi Kobayashi, Fumio Hara, Gou Uchida, and Munehisa Ohno, Study on Face Robot for Active Human Interface -Mechanisms of Face Robot and Facial Expressions of 6 Basic Emotion -, Journal of Robotics Society of Japan, vol.12, no.1, pp.155-163, 1994
[12] Toshio Fukuda, Jun Taguri, Fumihito Arai, Masakazu Nakashima, Daisuke Tachibana, and Yasuhisa Hasegawa, "Facial Expression of Robot Face for Human-Robot Mutual Communication", Proceedings of the 2002 IEEE International Conference on Robotics & Automation, 2002
[13] K. Sobottka and I. Pitas, "Segmentation and tracking of faces in color images," Proc. Of the Second Intl. Conf. On Auto. Face and Gesture Recognition, pp.236-241, 1996.
[14] M. Kass, A. Witkin D.Terzopoulos, "Snakes: Active contour Models," Int. J. o f Computer Vision (1) #4, pp. 321-331, 1988
[15] T. Maurer, and C. von der Malsburg, "Tracking and learning graphs and pose on image sequence of faces," Proc. Of the Second Intl. Conf. On Auto. Face and Gesture Recognition, pp. 176-181, 1996.
[16] Alexander Kuranov, Rainer Lienhart, and Vadim Pisarevsky. “An Empirical Analysis of Boosting Algorithms for Rapid Objects With an Extended Set of Haar-like Features”, Intel Technical Report MRL-TR-July02-01, 2002.
[17] Gary R. Bradski, “Computer Vision Face Tracking For Use in a Perceptual User Interface“, Intel Technology Journal, 1998
[18] J.D. Foley, A. van Dam, S. K. Feiner and J.F. Hughes, "Computer graphics principles and practice," Addison-Wesley, pp. 590-591.
[19]K. Fukunaga, "Introduction to Statistical Pattern Recognition," Academic Press, Boston, 1990.
[20] D. Beymer, "Face Recognition under varying pose", in Proceeding of 23rd Image Understanding Workshop, Vol.2, pp. 837-842, 1994.
[21] M. Turk and A. Pentland, "Face Recognition Using Eigenfaces", in Proceeding of International Conference on Pattern Recognition, pp. 586-591, 1991.
[22] F. Samaria and S. Young, "HMM based architecture for face identification", Image and Computer Vision, vol.12, pp. 537-543, October 1994.
[23] F. Samaria, Face Recognition Using Hidden Markov Models. phD thesis, University of Cambridge, 1994
[24] Jean J. Labrosse, “MICRO C/OS-2 실시간 커널”, 에이콘 출판
[25] http://www.intel.com/research/mrl/research/opencv/
[26] http://www.microsoft.com/windows/directx/default.aspx
[27] http://www.microsoft.com/speech/default.mspx

민경환  컴공4

<저작권자 © 동대신문, 무단 전재 및 재배포 금지>

icon인기기사
기사 댓글 0
전체보기
첫번째 댓글을 남겨주세요.
Back to Top