시점변화에 적응적인 보행자 유동속도 측정

2010-05-04     CCTV뉴스
대형 복합 건축물(multiplex building)의 증대와 하드웨어의 발달, 영상 신호처리 기술의 발전과 함께 지난 10여 년 동안 지능형 영상 감시 시스템 개발을 위해 다양한 노력이 있어왔다. 현재 전통적인 영상 감시 시스템은 영상의 단순 기록만을 수행하기 때문에 사고 발생 이후 사실 확인에 주로 사용되고 있는 실정이다. 이와 달리 지능형 영상 감시 시스템은 CCTV로부터 획득된 입력 영상을 해석하여 관심 사건을 검출하고 경고를 발생시킴으로서 최종적으로 사고의 발생을 미연에 방지하는 것을 그 목적으로 한다. 이러한 지능형 영상 감시의 예로는 군중 밀도 측정, 이상 사건 감지 또는 버려진 물체 검출 등을 들 수 있다.

보행자의 유동 속도(pedestrian flow speed) 측정은 카메라 입력 영상 내의 보행자들의 전체적인 이동 속도를 획득하는 것을 의미한다. 유동 속도는 대형 건축물 내에서 영상감시의 측면에서 전역적 관점에서 이상 사건 감지를 위한 중요한 수단을 제공하며 상권의 가치 분석 등의 중요한 정보를 제공하여 마케팅에 중요한 자료로 활용되며 또한 대형 건축물에서 요구되는 피난 계획의 설계 등에 필요한 보행자 통행 모델(pedestrian traffic mo del)의 개발에 필수적인 정보로 활용될 수 있다.

보행자의 유동 속도 분석은 영상 감시의 다른 주제들과 비교하여 비교적 적은 관심만을 받아왔다. Teknomo 등은 보행자의 이동 흐름(pede
strian flow)의 분석을 위한 데이터 수집 시스템을 제안한 바 있다. 이 시스템은 움직이는 영상에서 물체를 검출하고 추적하여 시간별로 위치를 기록하며, 이렇게 획득된 데이터로부터 개인의 이동 속도나, 보행자의 평균 이동 속도와 방향 등과 같은 데이터를 획득하는 것이 가능했다. 하지만, Teknomo의 방법은 위에서 내려다 본(top-v iew) 영상 또는 그와 유사한 영상에 대하여만 적용 가능하였으며, 낮은 각도에서 촬영된 영상에 대해서는 그 성능이 보장되지 않았다.

Shimmura 등은 영상에서 획득된 움직임 벡터의 집합으로부터 보행자들의 평균 이동 속도를 측정하기 위한 방법을 제안한 바 있다. 이 방법에서는 영상 내의 움직임 벡터의 크기로부터 실제 공간에서의 사람들의 유동 속도를 비율 인자(scaling factor)를 이용하였다. 즉, 보행자의 유동 속도는 움직임 벡터의 크기와 비율 인자의 가중합으로서 손쉽게 계산된다. 하지만 이 방법은 비율 인자가 특정 카메라 환경의 합성 영상으로부터 얻어졌고 움직임 벡터의 크기를 실제 이동 속도로 환산하기 위해 유도된 변환식이 카메라 기하를 내포하기 때문에 이 방법이 다른 시점의 카메라 영상에도 효과적으로 적용될 수 있는지에 대해서는 입증되지 않았다.

본 고에서는 일반적인 영상 감시 시스템의 영상으로부터 보행자의 유동 속도를 계산하기 위한 방법을 소개한다. 유동 속도의 측정은 영상 영역(image domain)에서 얻어진 움직임 벡터를 물리 영역(physical domain)으로 변환함으로써 이루어진다. 이를 위해 카메라 기하(camera g
eometry)로부터 직접적으로 계산되는 화소-미터 변환 계수(pixel-to-meter conversion factor)를 정의하였다. 또한 카메라 투영 과정에서 발생하는 움직임 벡터의 모호성을 해결하기 위하며 영상 내 움직임 벡터의 실세계에서의 높이 정보를 통계적인 방법을 통해 추정하였다.

본 고에서 소개하는 보행자의 유동 속도 측정 방법은 앞서 서술된 기존의 방법과는 다르게 일반적인 카메라 영상에 적용 가능하며 특히 카메라 매개변수를 속도 예측 과정으로부터 명시적으로 분리하기 때문에 다양한 시점의 카메라 영상에 적용이 가능한 장점이 있다.

움직임 벡터를 통한 통행 속도 측정

보행자 유동 속도 측정 방법의 설명에 앞서 우선 카메라 모델과 그 투영에 관해 설명한다. 그림 1은 3차원 공간에서 발생하는 움직임이 영상 평면에 투영되는 예를 나타낸다. 그림에 나타난 것과 같이 실공간 상에 어떤 움직임 VR이 발생할 때, 이 움직임은 영상 평면상의 움직임 벡터 VI로써 관찰되게 된다. 본 고의 유동 속도 측정 방법은 VI로부터 VR의 크기를 추정하고 이를 통하여 영상 내 전체적인 유동  속도를 측정하게 된다.


[그림 1] 3차원 공간 내 움직임의 2차원 영상 평면으로의 투영의 예

이러한 목적으로 실제 공간에서 움직임 VR의 크기를 추정하기 위하여 영상 내 화소 단위(pixel)를 물리적 단위(meter)로 전환하는 변환 인자(conversion factor)를 도입하였다.
이 화소-미터 간 변환 인자의 획득 과정은 그림 2를 통하여 설명될 수 있다.


[그림 2] 화소 단위의 미터 단위 변환


그림 2에 나타난 것과 같이 픽셀 pi에서 pj까지 단위 길이의 움직임 벡터가 관찰되었다고 가정하자. 이 때 카메라의 초점거리 f와 경사 각도(ti
lt angle)가 알려져 있으면, 각각의 화소 위치에 대하여 광축(optical axis)로부터의 각도 θi를 계산할 수 있다.
이러한 매개변수들에 의하여 화소-미터 변환 인자는 다음의 수식 (1)과 같이 얻어질 수 있다.

       (1)



여기에서 광학 중심에서 화소 위치까지의 수직거리 hp는 다음의 수식 (2)와 같이 계산된다. 
                                      
(2)
        

그림 2에는 영상 표시의 편의를 위하여 수직 방향의 변환 인자 dy/dv만이 나타내었으나, 수평 방향의 변환 인자 dx/du는 CCD 센서의 너비를 영상의 가로방향 화소 수로 나누어 줌으로서 간단히 계산될 수 있다. 화소-미터 변환 인자 dx/du와 dy/dv, 그리고 광학 중심(optical center)로부터의 수직 거리 hp는 초기 단계에서 영상 내의 모든 화소 위치에 대하여 미리 계산되어 저장된다.
계산된 변환인자를 이용하여 실공간에서의 움직임의 크기를 그림 3에 나타난 것과 같이 삼각비를 통하여 추정할 수 있다.


[그림 3] 실공간 움직임의 크기 추정

그림 3에서 VI는 영상 내의 움직임 벡터이며 VI′는 영상 내 VI에 화소-미터 변환 인자를 적용함으로써 얻어진다. 따라서 실공간에서 발생한 움직임 VR의 크기는 간단한 삼각비에 의하여 얻어질 수 있으며 유도된 결과는 아래의 수식 (3)에 나타난 것과 같다. 

(3)

최종적으로 시간 t에서 보행자들의 평균 이동 속도 FS(t)는 수식 (4)와 같이 영상에서 발생한 모든 움직임 벡터에 대하여 추정된 실공간의 움직임의 크기의 평균을 취함으로써 얻어진다. 이때 원근 투영의 영향에 의해 발생한 화소 크기의 차를 보정하기 위하여 수식 (4)에 나타난 것과 같이 각 움직임의 크기에 가중치 wi를 적용하였다.

(4)

카메라의 원근 투영에 의해서 영상 내에서 보행자의 크기는 그 위치에 따라 달라지게 된다. 즉 그림 4에 나타난 것과 같이 카메라에서 멀리 위치한 보행자는 영상에 작게 나타나고, 가까이 위치한 보행자는 크게 나타나게 된다. 이러한 원근 투영에 의한 객체 크기 변화는 카메라의 경사 각도가 충분히 낮을 때에 선형 변화를 따른다.


[그림 4] 원근 투영에 의한 보행자 크기 변화

일반적으로 CCTV 카메라의 경사 각도는 가능한 넓은 감시 영역을 포함하기 위하여 낮게 설정되는 경향이 있으므로 원근 투영에 따른 보행자의 크기 변화는 선형적이라고 가정하기로 한다. 수식 (4)의 가중치 wi를 설정하기 위하여 우선 보행자가 너비 W, 높이 H를 갖는 사각형으로 모델링된다. 이후 영상 내 서로 다른 위치들에서 보행자들의 크기를 이들의 외접 사각형(bounding box)를 수작업으로 설정함으로써 얻는다. 영상의 x축이 지면과 평행하다고 하면 영상 내 각 위치 (x, y)에서 보행자의 외접 사각형의 크기는 영상의 y좌표에 의해서 결정되며, 다음의 선형방정식에 의해 표현될 수 있다.

W(y) = ay b                                                         (5)
H(y) = cy d                                                          (6)

위의 선형 방정식의 계수 a, b, c, d는 앞서 수작업으로 설정된 외접 사각형들의 크기에 최소자승법을 적용함으로써 손쉽게 계산될 수 있다.
또한 앞의 수식 (4)에 의해 얻어지는 유동 속도 측정 결과에서 잡음에 의한 영향을 줄이기 위하여 다음의 수식 (7)와 같이 재귀 필터(recursive filter)를 이용하여 유동속도를 최종적으로 계산하게 된다.

FS(t) = (1-α )FS(t-1) α FS(t)                                  (7)


실공간 움직임의 높이 추정

앞에서 소개된 방법을 통하여 움직임 벡터의 크기로부터 보행자들의 이동 속도를 측정하는 것이 가능하지만, 여기에는 수식 (3)에 나타난 카메라와 실공간 움직임 사이의 수직 거리 he가 알려져 있지 않다는 문제가 있다. 이는 영상에서 얻어진 움직임 벡터는 카메라 투영에 의해 깊이(카메라로부터의 물체까지의 거리) 또는 실공간에서의 높이 정보를 잃어버리기 때문이다.


[그림 5] 카메라 투영에 의한 움직임 벡터의 모호성

그림 5는 이러한 문제의 예를 보여준다. 그림 5(a)에 나타난 것과 같이 영상 평면상의 벡터 VI는 서로 다른 높이(또는 카메라로부터의 깊이)를 갖는 실공간의 다양한 움직임으로부터 발생하는 것이 가능하다. 그림 5(b)와 같이 관측된 움직임 벡터들이 있다고 할때 이는 그림 5(c) 또는 (d)와 같이 보행자의 서로 다른 부분에서 발생한 것일 수 있다.

이러한 문제를 해결하는 가장 쉬운 방법은 he를 단순히 적절한 상수로 설정하는 것이다. 수식 (3)의 he의 값을 영상 내 모든 움직임 벡터의 정확한 he 값의 평균으로 설정할 수 있으면 유동 속도를 적절히 측정하는 것이 가능하다. 하지만, 모든 움직임 벡터의 he 값의 평균은 영상에 따라 변경될 수 있으므로 모든 상황에 적합한 하나의 상수로서 he 값을 설정하는 것은 용이하지 않다.

따라서 여기에서는 he의 평균값을 시뮬레이션 실험을 통하여 통계적으로 예측하는 방법을 도입하였다. 이에 앞서 우선 관측된 움직임 벡터들의 실공간 내 높이의 평균값에 영향을 주는 요소들에 대해 고려해 보도록 하자. 그림 6은 같은 방향으로 이동하고 있는 두 사람에 대해서 움직임이 관측되는 예를 보여주고 있다.


[그림 6] 보행자 간 거리, 카메라 각도와 가려짐 간의 관계

그림에서 회색으로 표현된 영역에서 발생한 움직임은 앞의 보행자에 의한 가려짐에 의해서 영상에서 관측되지 않는다. 두 번째 보행자에 대해서 영상에서 관측 가능한 영역은 d/tanθ로 표현될 수 있다(여기에서 d는 두 사람 사이의 거리, θ는 관찰되는 화소에 대한 기울기 각도). 관측 가능한 영역이 줄어들게 되면, 영상 내에서 관측된 움직임 벡터는 대부분 보행자의 윗부분에서 얻어지게 되므로 he의 평균치는 높아지게 된다.

따라서 영상 내에서 관측된 움직임 벡터가 실공간에서 갖는 높이의 기대치는 다음의 수식 (8)에 나타난 것과 같은 관계를 갖는 것으로 생각할 수 있다. 여기에서 cr은 단위 면적 내 보행자의 수로 정의되는 군중 밀도(crowd density)를 나타낸다. 영상 내 사람의 숫자가 많을수록 보행자 간 평균 간격 d는 줄어들게 되므로 d와 cr은 반비례 관계에 있다. 또한 cr은 면적에 의한 값이므로 거리 d와는 제곱으로 비례하는 관계에 있다.

(8)

수식 (8)에 나타난 것과 같이 영상 내 움직임 벡터의 실공간 내 평균 높이는 관측 각도와 군중밀도의 함수로 표현될 수 있다.
본 고에서는 실공간에서 발생한 움직임의 높이를 추정하기 위하여 합성 영상(synthetic image)을 이용한 모의 비디오 영상(simulated video)을 이용하였다. 이 모의 비디오는 영상 내 보행자를 타원면으로 표현하고 보행자의 움직임을 Teknomo의 미세 보행자 모델(microscopic ped
estrian model)에 의해 제어함으로서 생성되었다. 실험을 위하여 다양한 카메라 각도와 군중 밀도를 갖는 약 10,000장의 영상이 이용되었다. 그림 7은 실험에 이용된 모의 비디오 영상의 예를 보여준다.


[그림 7] 시뮬레이션 실험을 위한 서로 다른 카메라 각도와 군중 밀도의 합성 영상의 예


이렇게 생성된 모의 영상에 대하여 군중 밀도와 카메라 각도, 관측된 화소들의 실공간에서 높이의 평균값을 측정하였으며 그 결과를 카메라 각도와 군중 밀도의 2차 함수로 적합(fitting)하여 높이 정보를 예측하는 함수를 생성하였다.


그림 7은 데이터 적합의 결과로 얻어진 2차 함수를 보여준다. 그림 8에서 훈련된 함수가 카메라의 기울기의 변화에 대해서는 tangent  함수와 유사한 경향을 보이며 군중 밀도 변화에 대해서는 제곱근 함수 형태로 변화함을 볼 수 있는데, 이는 수식 (8)에 나타난 관찰과 일치하는 것임을 알 수 있다. 



[그림 8] 합성 영상들로부터 훈련된 높이 예측 함수의 예

실험 결과

유동 속도 측정의 실험에 있어서 가장 어려운 것은 많은 사람들이 이동하는 실제 영상에 대해서는 개개 보행자들의 정확한 이동 속도를 알아내는 것이 어렵다는 것이다. 이에 본 고에서는 합성 영상과 실제 영상의 두 가지 종류의 데이터에 대하여 실험을 진행하였다. 합성 영상의 생성을 위해 앞에서 언급된 모조 영상 생성시와 동일한 보행자 모델을 이용하였으며, 타원면 대신에 실제 영상에서 획득된 사람 영상을 이용하였다.
그림 9는 실험에 사용된 합성 영상과 실제 영상의 예를 보여준다.



[그림 9] 실험에 사용된 영상의 예 : (a) 합성 영상, (b) 실제 영상

그림 10은 합성 영상에 대한 이동 속도 측정 결과를 보여준다. 합성 영상에서는 각 영상 프레임에 대해서 보행자의 정확한 위치를 알 수 있기 때문에 정확한 이동 속도를 획득하는 것이 가능하다. 실험을 위해 서로 다른 각도(30도, 45도, 60도)에서 생성된 합성 영상이 이용되었다. 실험 결과 합성 영상에 대해서 이동 속도를 약 0.092m/s, 0.083m/s, 0.072 m/s의 평균 오차로 측정할 수 있었다.


                           (a)


                             (b)

                        (c)

[그림 10] 시뮬레이션 영상에 대한 실험 결과 : (a) 30도, (b) 45도, (c) 60도

그림 11은 실제 영상에 대한 이동 속도 측정 결과를 보여준다. 실제 영상에 대해서는 정확한 이동 속도를 측정하는 것이 어렵기 때문에, 영상 내 보행자의 머리 위치를 수작업에 의해 추적하고 이 위치를 카메라 기하에 의해 역으로 투영시킴으로서 각 보행자의 실제 위치를 추정하였다. 이 수작업에 의한 속도 추정은 500 프레임마다 이루어졌다. 그림 10의 실선은 제안된 방법에 의해 측정된 이동 속도의 결과를 보여주며, 붉은 사각형은 수작업에 의해 측정된 보행자들의 평균 이동 속도를 나타낸다.



[그림 11] 실제 영상에 대한 실험 결과 


결론

본 고에서는 보행자들의 유동 속도를 측정하기 위한 방법을 소개하였다. 본 고에서 소개한 유동 속도 측정 방법은 연속한 프레임 간에 관측된 움직임 벡터의 실공간의 크기를 예측하고, 그 평균을 통해 영상 내 보행자들의 평균 이동 속도를 측정한다. 이를 위해 화소-미터 변환 인자가 정의되었다. 또한 관측된 움직임 벡터의 실공간에서의 높이 정보를 예측하기 위하여 합성 영상을 이용한 시뮬레이션 실험이 이용되었다.

소개된 유동 속도 측정 방법은 변환계수 계산 과정에서 카메라 매개변수를 명시적으로 분리하고 시뮬레이션 실험을 다양한
각도에서 얻어진 영상에 대해 수행하였기 때문에 기존의 방법들과 달리 카메라 기하의 변화에 적응적으로 대응 가능한 장점이 있다.

실험을 위해 합성 영상과 실제 영상 두 종류의 데이터 셋을 이용하였으며, 다양한 각도에서 얻어진 합성 영상에 대한 실험 결과는 제안된 방법이 평균 약 0.08m/s의 오차로 유동 속도를 측정 할 수 있음을 보여주었고, 또 실제 영상에 대한 실험 결과도 소개된 방법이 감시 영상에 대한 유동 속도에 효과적으로 이용될 수 있음을 보여주었다. 

  
   
                      

    김회율 교수                                                 이광국
   (wykim@hanyang.ac.kr)                            (gglee@vision.hanyang.ac.kr)
   한양대학교 전자통신컴퓨터공학부 교수   한양대학교 전자통신컴퓨터공학부