고정 카메라에서의 시공간적 경계 정보를 이용한 이동 객체 윤곽선 검출 방법

2010-12-03     CCTV뉴스
본 고에서는 시간적, 공간적 경계 정보를 이용한 이동 객체의 윤곽선 검출 방법을 제안한다. 일반적으로 이동 객체의 경우 객체의 윤곽선(contour)을 구성하는 경계(edge) 픽셀에서 시간 축과 공간 축을 중심으로 큰 변화량(gradient)을 가진다. 따라서 시간 축과 공간 축을 중심으로 변화량이 큰 경계 픽셀을 구하면 이동 객체의 윤곽선을 검출할 수 있다. 본 고에서는 임의의 픽셀에 대하여 시간 축을 중심으로 한 경계 정보를 구하기 위해 Temporal Edge라는 새로운 형태의 변화량 계산 방법을 제안한다. Temporal Edge는 시간 t 와, t-2 에서 입력된 두 그레이 스케일 영상의 차를 시간 축을 기준으로 x 방향, y 방향으로 Sobel Mask를 적용하여 구한다. 검출된 Temporal Edge를 이용하여 이동 객체의 윤곽선이 존재하는 후보 영역을 검출하고, 검출된 후보 영역을 중심으로 공간적 경계 정보를 구하여 이동 객체의 대강의 윤곽선을 검출한다. 후처리 과정에서 검출된 대강의 윤곽선으로부터 배경 경계와 노이즈 픽셀을 제거한 후 최종적으로 이동 객체의 윤곽선을 검출한다. 제안한 방법은 기존의 배경 차 방법과는 다르게 별도의 배경 영상을 만들지 않기 때문에 배경 차 방법이 가지는 문제점을 극복하였으며, 빠른 연산 속도로 실시간 적용이 가능하다. 실험을 통하여 야간에도 강인한 윤곽선을 검출할 수 있음을 확인하였고, 엔트로피 방법과의 비교를 통해 제안하는 방법의 우수성을 보였다.

최근 늘어나는 강력 범죄로 인하여 보안에 대한 요구가 증가함에 따라 CCTV나 카메라와 같은 영상 장비를 활용한 지능형 영상 보안 시스템의 개발이 중요한 연구 분야로 대두되고 있다. 지능형 영상 보안 시스템이란 영상 장비로부터 입력되는 영상의 이동 객체의 정보를 자동으로 추출하고, 이 정보를 바탕으로 이동 객체의 움직임 정보나 이동 경로를 자동으로 검출하여 비정상적인 행위에 대해서 경보를 알려줌으로써 인간을 대신하여 감시 역할을 수행할 수 있는 자동화 된 시스템을 말한다.

지능형 영상 보안 시스템의 가장 기본이 되는 기능은 영상 장비로부터 입력되는 영상에서 자동으로 이동 객체를 검출하는 것이다. 이동 객체의 검출이 선행된 후에 움직인 정보나 이동 경로에 대한 분석이 가능하다. 따라서 이동 객체의 검출은 지능형 영상 보안 시스템에 가장 핵심이 되는 기술 요소이며, 이동 객체의 검출 성능에 따라 시스템의 성능이 좌우된다.

일반적으로 카메라에서 연속적으로 입력되는 이미지 시퀀스에서 이동 객체를 검출하는 방법에는 배경 영상을 이용한 방법이 주로 이용된다. 배경 영상을 이용한 방법이란 카메라로부터 연속적으로 입력되는 영상에서 배경에 해당하는 영상을 유추하고, 이를 활용하여 현재 시간에서 입력되는 영상과의 차를 구하여 이동 객체를 검출하는 방법이다.

Hariataoglu는 매 시간 입력되는 영상에서의 각 픽셀 값에 대한 평균과 분산 값을 이용하여 배경 영상을 생성하였으며, Sauffer는 픽셀 값을 가우시안 모델을 이용하여 모델링하여 배경 영상을 생성하였다.

Elgammal은 커널 밀도 추정(Kernel Density Estima tion) 기법을 이용하여 매 시간 입력되는 영상에서의 픽셀 값들에 대한 확률적 분포를 구하여 배경을 생성하였다. 배경 영상 차 방법은 카메라로부터 연속적으로 입력되는 영상에서 유추한 배경을 기반으로 움직이는 객체를 검출하기 때문에 신뢰성 있는 배경 영상을 생성하는 것이 가장 큰 관건이라고 할 수 있다. 외부 조명의 변화가 심하지 않은 상황에서 배경 영상이 잘 유추 되었을 경우 이 방법은 뛰어난 검출 결과를 보인다. 그러나 자연광이나 인공조명 등의 외부 요인에 의해 갑작스러운 조명 변화가 있을 경우 신뢰성 있는 배경 영상이 생성되기 어렵기 때문에 검출 성능이 저하된다는 단점이 있다.

신뢰성 있는 배경을 유추하기 위해서는 다양한 형태의 부가적인 연산이 포함되게 되고 결국 많은 연산량을 필요로 하게 되므로 속도가 느려진다는 단점도 있다. 또한 배경 영상 유추 단계에서 장시간 정지 상태에 있는 객체의 경우 배경 영상으로 간주되어 배경 영상이 만들어 지며, 이 객체가 다시 움직일 경우 객체가 배경으로 모델링 된 부분이 잘못 검출되는 잔상효과가 나타난다. 잔상효과는 배경 차이 기법이 가지고 있는 가장 큰 문제 중에 하나이다.

배경 영상을 사용하지 않고 이동 객체를 검출하는 방법으로는 시공간적 경계정보를 활용하는 방법이 있다. 이 방법은 카메라로부터 입력되는 이미지 시퀀스에서 시공간적 경계 정보를 추출하고 이를 중심으로 이동 물체를 검출하는 방법이다. 배경 영상을 활용하는 방법과는 달리 시공간적 경계 정보만을 추출하기 때문에 별도의 배경 이미지를 만들지 않아 배경 영상법이 가지고 있는 단점을 효율적으로 극복할 수 있다.

본 고에서는 이러한 장점을 활용하여 시공간 경계정보를 이용한 이동물체 검출 방법을 제하고, 임의의 픽셀에 대하여 시간 축을 중심으로 한 시간적 경계정보를 구하기 위해 Temporal Edge라는 새로운 형태의 변화량 계산 방법을 제안한다. Temporal Edge는 시간 t 와, t -2에서 입력된 두 그레이 스케일 영상의 차를 시간 축을 기준으로 x방향, y방향으로 Sobel Mask를 적용하여 구한다.

제안된 Temporal Edge는 알고리즘의 초기 단계에서 이동 객체의 윤곽선이 존재하는 후보 영역을 검출하는데 활용된다. 검출된 후보 영역에 속하는 픽셀들을 중심으로 공간적 경계 정보를 추출하고, 이로부터 이동 객체의 대강의 윤곽선을 검출한다. 그러나 이렇게 검출된 대강의 윤곽선에는 우리가 원하지 않는 배경 경계와 노이즈 성분이 포함되어 있다. 따라서 모폴로지(morphology) 연산과 배경 에지 제거법과 같은 후처리 과정을 통해 노이즈를 제거한 후 최종적인 이동 객체의 윤곽선을 검출한다.

이동 객체 윤곽선 검출 방법

본 고에서 제안하는 이동 객체 윤곽선 검출 방법은 현재 시간 t 에서 입력되는 영상  ft 만을 사용한다는데 그 특징이 있다. 배경 영상을 생성하는 기존 방법의 문제점을 극복하기 위해 배경 영상을 생성하지 않고, 영상만으로 이동 객체의 윤곽선을 검출한다.

본 고에서 제안하는 이동 객체의 윤곽선 검출 방법은 크게 세 가지 부분으로 나누어진다. 첫 번째 부분은 현재 시간 t 에서 입력되는 영상  ft 를 이용하여 이동 객체의 윤곽선이 존재하는 후보 영역을 검출하기 위해 Temporal Edge를 구하는 단계이다. 두 번째 부분은 구해진 Temporal Edge를 기반으로 공간적 경계 정보를 추출하여 이동 객체에 대한 대강의 윤곽선을 검출하는 단계이다. 마지막으로 대강의 윤곽선으로부터 배경 경계와 노이즈를 제거하기 위한 후처리 과정이다. 그림 1은 본 고에서 제안하는 알고리즘의 전체 흐름도를 나타낸 것이다. 그림 1에서 원안에 있는 - 기호는 두 이미지 사이의 차(subtraction)를, ∧는 두 영상의 공통부분, 즉 AND 연산을 의미한다.

Temporal Edge 검출
이동 객체의 윤곽선을 검출하기 위해 우선 윤곽선이 존재하는 후보 영역을 먼저 검출한다. 후보 영역을 먼저 검출하는 이유는 윤곽선을 검출하기 위해 영상 전체를 검색하기 보다는 윤곽선이 존재하는 후보 영역을 먼저 검출하고 그 후보 영역에서 윤곽선을 검출함으로써 연산량이 줄어 속도를 빠르게 할 수 있기 때문이다.

이동 객체의 윤곽선이 존재하는 후보 영역을 검출하기 위해 시간 축을 중심으로 한 새로운 형태의 변화량 계산법인 Temporal Edge를 제안한다. Temporal Edge는 Spatial Edge와 대응되는 용어로써 기존에 공간상에서 에지 연산자를 이용하여 추출한 경계 정보를 Spatial Edge라고 하면, 이와 유사한 개념으로 시간상에서 에지 연산자를 이용하여 추출한 경계 정보를 Temporal Edge라 칭하기로 한다. 공간상에서 경계를 구할 경우 영상 상에서 각 픽셀을 중심으로 그림 2와 같은 Sobel Mask를 이용하여 구한다.




Temporal Edge TE ft, ft-2 는 Sobel Mask를 그림 3과 같이 시간 축을 중심으로 x방향, y방향으로 적용하여 구한다. 이를 식으로 표현하면 수식 (1)과 같다.



그림 4는 수식 (1)을 이용하여 구한 Temporal Edge의 예이다.

그림 4에서 보듯이 Temporal Edge는 환형(ring shape)을 나타낸다. 그 이유는 Temporal Edge가 시간 축을 중심으로 픽셀의 변화량을 계산한 값이기 때문이다. 즉 이동 객체의 경우 객체의 경계에 해당하는 부분의 경우 시간 축을 중심으로 큰 변화량을 보이는 반면 몸통에 해당하는 부분은 작은 변화량을 보인다. 따라서 이동 객체의 윤곽선이 존재하는 주변으로는 강한 Temporal Edge가 나타지만, 그렇지 않는 부분에서는 Temporal Edge가 약하거나 나타나지 않게 된다.


Spatial Edge 검출
카메라로부터 연속적으로 입력되는 매 영상마다 Canny Edge를 검출하여 이를 Spatial Edge 정보로 활용한다. 그림 5는 검출된 Spatial edge 정보 SEt 의 예를 보인 것이다. 이렇게 추출된 Spatial Edge 정보는 Temporal Edge 정보와 함께 조합되어 이동 객체의 윤곽선을 검출하는데 활용된다. 뿐만 아니라 후처리 과정을 위해 배경 경계 정보를 만드는 데도 활용된다.


대강의 윤곽선 검출
위에서 검출한 Spatial Edge 정보 SEt 로부터 이동 객체의 윤곽선을 검출하기 위해 Temporal Edge TE ft, ft-2를 활용한다. 앞에서 우리는 이동 객체의 윤곽선을 구성하는 픽셀의 경우 시간적, 공간적 축을 중심으로 높은 변화량(gradient)을 가진다고 가정했었다. 위에서 구한 Temporal Edge는 시간 축을 중심으로 변화량을 구한 값이고 Spatial Edge는 공간 축을 중심으로 변화량을 구한 값이다. 따라서 이 두 값이 동시에 높은 픽셀들을 추출하면 이동 객체의 윤곽선을 검출할 수 있다.

본 고에서는 Temporal Edge를 이동 객체의 윤곽선이 존재하는 후보 영역으로 삼아, Temporal Edge에 속하는 임의의 픽셀을 중심으로 그 주변(본 고에서는 5x5 window 영역 내)에 존재하는 Spatial Edge 픽셀을 검출하여 이동 객체에 대한 대강의 윤곽선(rough contour) RCt 검출한다. 여기서 '대강의'라고 명시한 이유는 이 단계에서 검출된 윤곽선을 후처리 과정을 거친 최종 윤곽선과 구분하기 위해서이다. 이 단계에서 검출된 윤곽선은 최종 윤곽선과는 달리 우리가 원하지 않은 노이즈와 배경 경계 픽셀을 포함한다. 따라서 이러한 노이즈와 배경 경계 픽셀을 제거하기 위해 후처리 과정이 필요하다. 표 1은 대강의 윤곽선 RCt 를 구하기 위한 Pseudo-code 이다.




그림 6은 이동 객체에 대한 대강의 윤곽선 검출 결과이다. 그림 6에서 보듯이 이동 객체에 대한 대강의 윤곽선이 Temporal Edge와 Spatial Edge가 동시에 큰 부분에서 검출됨에 따라 앞에서 가정한 이동 객체의 윤곽선은 공간적으로나 시간적으로 변화량이 큰 부분에 존재한다는 가정이 정당함을 확인할 수 있다.

그러나 그림 6의 결과에는 우리가 원하지 않는 노이즈 픽셀이 많이 포함되어 있다. 이는 후보 영역 TE ft, ft-2 픽셀을 중심으로 주변 영역(5x5 window)에 있는 Spatial Edge 픽셀들을 고려하다보니 배경 경계가 포함되어 검출되었기 때문이다. 따라서 배경 경계를 제거하기 위한 후처리 과정이 필요하다.

배경 경계 정보 생성
대강의 윤곽선 RCt에는 이동 객체의 실제 윤곽선뿐만 아니라 우리가 검출하기를 원치 않는 배경 경계 픽셀과 노이즈 픽셀이 포함되어 있다. 따라서 이를 제거하기 위한 후처리 과정이 필요하다. 배경 경계를 제거하기 위해서는 배경 경계 정보를 알아야 하며, 이를 위해 배경 경계 정보를 생성할 필요가 있다. 우리는 매 시간 t 에서 입력되는 영상 ft로부터 공간적 경계 정보 SEt를 검출하고 있다.

배경 경계라 함은 매 시간 입력되는 영상에서 이동 객체와는 별개로 항상 고정되어 나타나는 공간적 경계를 말한다. 따라서 매 시간 t 에서 검출한 공간적 경계 정보 SEt상에서 동일한 위치에서 나타날 확률이 높다. 따라서 공간적 경계 정보 SEt에서 반복적으로 나타나는 경계 픽셀에 대해 연속적으로 검출되는 횟수를 누적하여 배경 경계 정보 BGSEt를 생성한다. 시간 t -1에서 SEt-1상에서의 임의의 픽셀이 공간적 경계 픽셀인 경우 시간 t 에서 다시 이 픽셀이 공간적 경계로 나타나게 되면 이는 배경 경계 픽셀일 확률이 높으므로 누적 횟수를 1 증가 시키고 반대로 공간적 경계로 나타나지 않는 경우 누적 횟수를 1 감소시킨다. 결국  SEt상에서 연속적으로 공간적 경계로 나타나는 픽셀의 경우 배경 경계일 확률이 높아져 높은 누적 횟수를 나타내게 되고 그렇지 않은 경우 낮은 누적 횟수를 나타내게 된다. 배경 경계 정보 BGSEt 는 수식 (2)와 같이 구한다.

여기서 countt (x, y) 는 시간 t 에서 x, y 위치의 임의의 픽셀에 대해 공간적 경계로 나타나는 횟수를 누적한 것이며, thl (=10) 은 임의의 경계(threshold) 값 이다. 그림 7은 생성된 배경 경계 정보를 보인 것이다.


후처리
대강의 윤곽선 RCt 에는 우리가 원하지 않는 배경 경계 픽셀과 노이즈 픽셀이 포함되어 있다. 따라서 배경 경계 픽셀 제거와 노이즈 픽셀 제거를 위한 후처리 과정이 필요하다. 앞에서 생성한 배경 경계 정보를 이용하여 대강의 윤곽선으로부터 배경 경계 픽셀에 해당하는 픽셀을 제거하여 최종적은 이동 객체의 윤곽선을 검출한다. 또한 주변에 이동 객체의 윤곽선이 존재하지 않는 점 픽셀을 노이즈 픽셀로 간주하고 이를 제거한다.

대강의 윤곽선 RCt 내에 존재하는 픽셀 중 배경 경계 정보 BGSEt 와 동일한 위치에 존재하는 픽셀을 배경 경계 픽셀로 간주하고 이를 제거한다. 이를 식으로 표현하면 수식 (3)과 같다.



여기서 RCt 는 앞에서 구한 대강의 윤곽선이며, BGSEt 는 시간 t 에서의 배경 경계 정보이고, th2 (=128) 는 임의의 경계(threshold) 값이다. 그림 8은 대강의 윤곽선에 대한 배경 경계 제거 결과이다.


실험 결과

제안한 방법은 Intel Core2 2.4 GHz 환경에서 Visual C++ 2008을 이용하여 구현하였으며, 실험 영상은 320x240 크기의 다양한 실외 환경에서 촬영된 영상을 사용하였다. 그림 9는 실험에 사용된 영상들로 다양한 환경에서 촬영된 실외 영상들로 구성되어 있다.

제안한 방법의 검출 성능을 평가하기 위해 Precision 과 Recall을 이용하였다. Precision과 Recall은 정확도를 평가하는 척도로서 널리 알려진 방법이다. Precision은 검출 결과가 얼마나 정확한가를 평가하는 척도이며, Recall은 검출해야 하는 것 중에서 실제로 얼마나 검출 했느냐를 평가하는 척도이다. Precision과 Recall을 구하는 식은 식 (4), (5)와 같다.




여기에서, tp는 true positive, fp는 false positive를 그리고 fn 는 false negative를 나타낸다. 즉, tp 는 제안된 방법을 통해 검출된 이동 객체의 윤곽선 픽셀들 중, GT(ground truth) 이미지 상의 실제 이동 객체의 윤곽선 픽셀과 위치가 일치하는 픽셀의 개수를 말한다. 이때 GT는 그림 9의 각 실험 영상에서 물체의 이동이 있는 하나의 구간에 대해 100장의 연속된 이미지를 추출하고 이를 기반으로 수작업으로 이동 객체의 윤곽선에 해당하는 픽셀을 표시하여 이진(binary) 영상을 만들었다.  fp 는 제안된 방법을 통해 이동 객체의 윤곽선 픽셀로 검출되었으나 GT 이미지 상에는 실제 이동 객체의 윤곽선 픽셀이 아닌 픽셀의 수를 말한다.

마지막으로  fn 은 제안된 방법으로는 검출되지 않은 픽셀들 중 GT 이미지 상에는 실제 이동 객체의 윤곽선 픽셀인 픽셀의 개수를 말한다.
표 2는 그림 9의 실험 영상에 대한 이동 객체 윤곽선 검출의 정확도에 대한 평균값을 나타낸 것이다. 표 2에서 보듯이 제안한 방법은 다양한 실외 환경에 대해 이동 객체의 윤곽선 검출 정확도가 높음을 볼 수 있다. (c) 비디오의 경우 이동 객체의 뭉침 정도가 많고 이동 객체의 양이 많아 제안한 방법으로 검출한 윤곽선의 검출 정확도가 다소 떨어짐을 볼 수 있다.





 제안한 방법은 밝기의 변화에도 강인하게 이동 객체의 윤곽선을 검출 할 수 있음을 실험을 통해 확인할 수 있었다. 그림 9의 (e) 비디오 클립에 대해 동일한 장소에서 서로 다른 시간대를 이용하여 밝기의 변화가 다른 실험 영상을 취득하였다. 그림 10은 동일한 장소에서의 다른 시간대에 촬영된 영상에 대한 이동 객체 윤곽선 검출 결과를 보인 것이다.



배경 영상을 사용하는 기존 방법의 경우 아주 천천히 움직이는 객체나 오랜 시간 정지해 있는 객체는 배경으로 포함되어 모델링 되고 이후 이 객체가 다시 움직일 경우 배경 영상에 잔상으로 남아있게 되어 이동 객체로 잘못 검출되는 문제가 있다.

그러나 제안한 방법은 별도의 배경 영상을 만들지 않고 현재 시간 t에서 입력되는 영상 ft 만을 사용하기 때문에 이러한 잔상효과를 원천적으로 제거할 수 있다. 그림 11은 잔상효과에 따른 검출 결과를 비교한 것이다.
 

본 고에서 제안한 이동 객체 윤곽선 검출 방법의 결과를 검증하기 위해 엔트로피를 이용한 방법을 이용하여 성능을 비교한 결과가 그림 12에 나와 있다. 이 결과들을 보면 다른 방법들에 비해 제안한 방법이 이동 객체 윤곽선을 강인하게 검출함을 볼 수 있다.

엔트로피를 이용한 이동 객체 윤곽선 검출방법은 중심 픽셀 주변의 밝기 변화를 확률적으로 모델링하기 때문에 주변 픽셀의 밝기 변화가 크기 않은 경우에는 윤곽선 검출이 잘 안됨을 볼 수 있다. 그러나 제안하는 방법은 중심 픽셀과 주변 픽셀과의 밝기 차를 3차원으로 고려하기 때문에 이동 객체의 윤곽, 즉, 픽셀의 밝기의 변화량이 큰 부분에서 강인한 윤곽선이 검출됨을 볼 수 있다.


결론

본 고에서는 시간적, 공간적 경계 정보를 이용한 이동 객체 윤곽선 검출 방법을 제안하였다. 제안한 방법은 시간 t와 t-2에서 입력되는 영상을 이용하여 시간적 경계 정보를 추출하였으며, 시간 t 에서 입력되는 영상에서 Canny Edge를 검출하여 공간적 경계 정보로 활용하였다. 시간적 경계 정보를 추출하기 위해 Sobel Mask를 이용한 새로운 형태의 시간적 경계 정보 검출 방법인 Temporal Edge를 제안하였다.

Temporal Edge로부터 검출된 시간적 경계 정보를 이동 객체의 윤곽선이 존재하는 후보 영역으로 사용하였으며, 공간적 경계 정보를 이용하여 최종적인 이동 객체의 윤곽선을 검출 하였다. 시간 t 에서 검출한 시간적 경계 정보를 확률적으로 누적하여 배경 경계 정보를 생성하고 이를 이용하여 최종 윤곽선에 포함되어 있는 배경 경계를 제거하였다.

다양한 실험 영상을 통해 제안한 방법의 우수성을 검증하였다. 특히 동일한 장소에서 밝기가 서로 다른 영상을 취득하여 밝기 변화에도 강인하게 이동 객체의 윤곽선을 검출할 수 있었다. 배경 영상을 생성하지 않아 잔상 효과를 제거할 수 있었으며, 엔트로피 방법과의 비교를 통해 제안한 방법이 우수한 것을 확인할 수 있었다.

본 고는 시간적 경계 정보를 검출하기 위해 새로운 변화량 계산 방법인 Temporal Edge를 제안했다는 점에서 그 의의가 있다고 하겠다. 시간 t를 중심으로 한 3개의 이미지와 차 영상만으로 구성되어 연산속도가 매우 빨라 실시간 응용이 가능하다. 또한 Temporal Edge를 통해 추출되는 시간 축에 따른 이미지 픽셀의 변화량 정보는 연속적인 이미지에서의 이동 물체를 검출하는 다른 애플리케이션에서 다양하게 활용이 가능하여, 그 활용도가 높다고 할 수 있다.

그러나 제안한 방법은 고정 카메라만을 고려하여, 카메라가 움직이는 상황에 대해 취약함을 드러낸다. 따라서 카메라가 움직이는 상황에도 이동 물체의 윤곽선을 검출 할 수 있는 연구가 필요하다.

<본 내용은 곽재호, 김회율 연구, 방송공학회논문지 2010년 제15권 제4호에 게재된 논문을 바탕으로 정리한 것입니다>