정보공간_1

[2기 강남 권도일]객체 추적을 위한 전경 배경 분리기법 본문

IT 놀이터/Elite Member Tech & Talk

[2기 강남 권도일]객체 추적을 위한 전경 배경 분리기법

알 수 없는 사용자 2012. 10. 26. 15:24

1. 픽셀 표현에 대해서

영상은 화소(Pixel)들의 집합으로 하나의 화소는 R, G, B 3채널의 혼합으로 구성되어 0~255 사이의 정수로 표현된다. 예를 들어 아래 그림에서 특정 영역에서의 화소들의 표현은 다음과 같습니다.


명암 영상은 1채널로 표현되며, 일반적으로 R, G, B 각각의 색상에 대해 평균을 취한 값을 사용하며, 우리가 어린 시절에 접했던 흑백 영상을 말합니다.

아래 그림은 위 그림을 명암 영상으로 변환 한 결과이다. 명암도 영상은 0~255값으로 0의 경우 검은색을 나타내고 255로 갈수록 흰색을 나타냅니다.


그럼 명암 영상의 장점에 대해 알아봅시다. 명암 영상은 1차원으로 3차원 컬러 영상에 비해 영상에 포함하고 있는 정보가 부족합니다. 그런데도 불구하고 컴퓨터 비전이나 영상처리 분야에서 명암도 영상을 사용하는 이유는 차원이 절약되었으므로 연산 속도가 빠르고, 처리가 단순해지므로 원하는 정보를 쉽게 습득 할 수 있습니다. 3차원의 경우 빨간색에 대한 색상의 강함, 약함, 투명도 파랑색에 대한 강함, 약함, 투명도, 녹색에 대한 강함, 약함, 투명도등의 정보를 모두 고려하여 처리를 한다면 그것은 매우 복잡한 일이 아닐 수 없습니다. 추가로, R, G, B 색상은 상호 독립적인 색상이 아니기 때문에 처리시에 많은 수를 고려해야 하기 때문에 보통에 경우 컴퓨터 비전 또는 영상처리 분야에서는 상호 독립으로 처리하는 경우가 대부분입니다. 반면에 명암도 영상은 한 화소에 대해 강함, 약함 만이 존재함으로 처리가 쉽고 직관적인 장점이 있습니다. 

2. 위에서 구한 명암도 영상을 이용해서 차영상을 구해봅시다. 영상에서의 차영상은 두 개의 영상의 차이 값을 영상으로 표현을 말합니다.


 

여기서 (x,y)는 영상에서의 X축 Y축의 특정 좌표를 의미하고, D(x,y)는 차영상을, I(x,y)는 입력 영상을, T(x,y)는 대상 영상을 나타냅니다. 차영상이 의미하는 것은 두 영상의 차이값에 대한 양을 수치적으로 표현하는 것이 목적이기 때문에 차이에 대한 절대값을 사용하여 부호를 양의 정수로 바꾸어 줍니다.

예를 들어 봅시다. 위의 입력 영상 두 개는 동영상의 5416번째 프레임과 7419번째 프레임의 영상이고, 두 영상의 차영상을 구해봅시다.


결과 영상은 차이값을 다시 영상으로 표현한 차영상이기 때문에 차이값이 큰 부분은 흰색에 가깝게 표시된 것을 알 수 있네요.

3. 배경과 전경의 차이

배경 분리 기법에서의 전경(Foreground)과 배경(Background)은 다음과 같은 가정을 갖습니다. 전경은 우리가 관심을 갖는 객체 즉, 방범용 영상에서는 사람이 관심 객체가 될것이고, 불법주차 관제 시스템에서는 불법 주차를 하는 차량이 관심 객체가 될 것입니다. 동일한 결론은 관심객체는 움직이는 대상인 것입니다. 반면에 배경은 실내의 경우 벽, 액자, 냉장고 등이 있고 실외의 경우 건물, 주차된 차, 나무, 신호등, 거리 등이 될 것입니다. 즉, 전경은 우리가 관심을 갖는 동적 객체를 나타내고, 배경은 움직임이 작거나 패턴을 가지며 객체로서 처리되지 않아야 하는 부동 객체를 은 관심 만약 위의 동영상람이 우리가 사람을 관심객체로 하고 사람의 영역만 추적해야 된다 가정합시다. 좀 더 극한의 상황으로 만들자면, 우리는 지하철 장소람이 누군가는 폭발물을 들고와이 동영상의 위치에 설치 관는 첩보를 받았고, 시스템 관리자인 우리는 CCTV를 실시간 분석을 통하여 범인을 색출해야 하고 가정합시다. 관심객체는 사람이 되었고, 더 깊이 보면 관심객체 중에 폭발범을 찾는 것이 목적이 될 것입니다. 위의 동영상람이 우리가 원하는 정보는 움직이는 관심객체로 볼 수 있습니다. 다시 한번 위의 그림을 생각스템에서는사람은 움직이고, 바닥의 패턴이나 벽은 움직이지 않습니다. 다시 말하면 움직이는 모든 객체를 추출하면 됩니다. 이제 위의 영상을 다시한번 주의깊게 봐봅시다.


벽이나 바닥은 움직이지 않았기 때문에 입력 영상 I, T의 차이값은 같다고 가정해 볼 수 있을 것이고, 움직임이 있는 객체는 모두 검출 되었습니다. 다시 표시를 한번 해봅시다.



이 그림에서 관심있는 객체를 빨간색으로 표기하였습니다. 빨간색 이외에 영역에서도 차이값이 나타나 영상에 표현된 것을 알 수 있습니다. 이것은 두 프레임 간의 시간 차 즉 5419번째 프레임과 7291번째 프레임에서의 배경이 틀린 것을 나타냅니다. 실내의 조명의 변화나, 카메라의 흔들림, 카메라 기기 자체 잡음으로 표현할 수 있을 것입니다. 중요한건, 빨간색 표시영역에서의 차이값보다 배경의 변화로 인한 차이값이 작다는 것입니다.

이제 우리는 관심 영역을 다시한번 제대로 추출하기 위해서 이진화라는 기법을 사용할 것입니다. 이진화는 여러 가지 방법이 있지만, 여기서는 가장 간단한 방법을 사용할 것입니다. 이진화라는 개념은 일정 임계치를 이용하여 0과 1 또는 0과 255로 값을 분리하는 것을 의미합니다. 수식으로 나타내봅시다.

위의 수식을 분석해보면, 차영상 D(x,y)에서 (x, y)위치에서의 차이값이 임계값(Threshold)보다 큰 경우에는 이진 영상(x,y) 위치에 명암값 255를 저장하고, 작거나 같은 경우에는 0을 저장하는 수식입니다. 즉, 차이값이 일정 임계값 보다 큰 경우에만 의미있는 값 255로 표현한다는 식입니다. 위의 식에 Threshold=80 을 적용해보면 다음의 이진영상을 구할 수 있습니다.


이진화 후 결과를 보면 주로 관심 객체 영역에서 255의 명암도 값이 나온 것을 알 수 있습니다. 그 외의 영역은 잡음으로 간주되어 추후 라벨링 알고리즘 잡음 제거를 통해 제거됩니다.

중요한 점을 집고 넘어볼까요??? 중요한건 동적인 객체가 전경이고, 정적인 객체가 배경이라는 사실입니다. 배경을 효과적으로 분리해 내기 위해서는 배경영상을 생성하고 이영상을 기준으로 매번 차영상을 수행하는 방법입니다.

 위의 배경 영상을 이용하여 매프레임 차영상을 수행하고 이진화를 수행해봅시다.

결과를 보면 우리가 생각했던 데로 관심 객체가 모두 추출되었음을 볼 수 있었습니다. 그러나 후반으로 갈수록 잡음이 많이 생기는 현상이 나타나는 것을 볼 수 있는데 이것은 배경이 움직였음을 나타내는 것입니다. 따라서 간단한 배경이미지를 이용한 차영상 생성 방법은 실제 상황에 적용이 힘들다는 것을 알 수 있습니다.