KR101158729B1 - 실시간 다수 객체 추적시스템 및 방법 - Google Patents

실시간 다수 객체 추적시스템 및 방법 Download PDF

Info

Publication number
KR101158729B1
KR101158729B1 KR1020100029386A KR20100029386A KR101158729B1 KR 101158729 B1 KR101158729 B1 KR 101158729B1 KR 1020100029386 A KR1020100029386 A KR 1020100029386A KR 20100029386 A KR20100029386 A KR 20100029386A KR 101158729 B1 KR101158729 B1 KR 101158729B1
Authority
KR
South Korea
Prior art keywords
blob
event
vertices
inference graph
blobs
Prior art date
Application number
KR1020100029386A
Other languages
English (en)
Other versions
KR20110109596A (ko
Inventor
양현승
최진
채영남
한병옥
Original Assignee
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술원 filed Critical 한국과학기술원
Priority to KR1020100029386A priority Critical patent/KR101158729B1/ko
Publication of KR20110109596A publication Critical patent/KR20110109596A/ko
Application granted granted Critical
Publication of KR101158729B1 publication Critical patent/KR101158729B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/277Analysis of motion involving stochastic approaches, e.g. using Kalman filters

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)

Abstract

이 발명은 블랍 추론 그래프를 이용하여 단일 객체의 분열(fragment) 문제와 복수 객체의 그룹핑(grouping) 문제를 해결하는 실시간 다수 객체 추적시스템 및 방법에 관한 것이다. 이 발명에 따른 실시간 다수 객체 추적시스템은, 프레임 t-1에서 추출된 블랍 집합 Bt-1의 각 원소에 칼만 필터를 적용한 예측 블랍 집합
Figure 112011104606711-pat00189
와 프레임 t에서 추출된 블랍 집합 Bt 사이에서 발생하는 블랍 연관 이벤트의 종류를 추출하고 상기 추출된 블랍 연관 이벤트의 종류에 따라 블랍을 추적하는 블랍추적수단과, 상기 프레임 t-1에서 생성된 블랍 추론 그래프를 이용하여 상기 프레임 t에서 추적된 블랍들에 대해 상기 블랍 연관 이벤트의 종류에 따라 새로운 버텍스와 유향에지를 추가하거나 삭제하여 상기 블랍 추론 그래프를 업데이트하는 블랍추론그래프갱신수단과, 상기 블랍 추론 그래프를 구성하는 버텍스들 중 일관된 움직임을 갖는 버텍스들을 하나의 객체로 묶고 하나의 라벨을 할당하는 블랍추론그래프라벨링수단과, 상기 블랍 추론 그래프를 구성하는 버텍스들의 라벨과 블랍 연관 이벤트의종류에 따라 객체 연관 이벤트 발생 여부를 판단하고, 객체 연관 이벤트를 기반으로 상기 버텍스에 객체를 할당하는 객체위치할당수단을 포함하며, 상기 블랍 연관 이벤트의 종류는 계속, 병합, 분리, 등장, 퇴장을 포함한다.

Description

실시간 다수 객체 추적시스템 및 방법 {system and method for tracking multiple objects in real time}
이 발명은 실시간 다수 객체 추적시스템 및 방법에 관한 것으로서, 보다 상세하게는 블랍 추론 그래프를 이용하여 단일 객체의 분열(fragment) 문제와 복수 객체의 그룹핑(grouping) 문제를 해결하는 실시간 다수 객체 추적시스템 및 방법에 관한 것이다.
이 발명은 지능형 무인감시시스템, 영상검색시스템, 지능형 로봇 등 행동인식기술을 필요로 하는 모든 분야에 적용될 수 있다.
이 발명의 출원인은 블랍(BLOB) 기반으로 여러 사람이 등장하고 사라지고 겹치기도 하는 영상으로부터 그 여러 사람을 동시에 추적하면서 동시에 인간 블랍의 모양 정보까지 추출하는 기술을 출원하였으며 특허등록(특허번호 : 제10-911121호) 되었다.
이 선행특허는 단일 객체(한 사람)가 단일 블랍으로 표현된다는 전제하에, 각 블랍을 5가지 상태 즉, 등장(appearing), 퇴장(disappearing), 추적(tracking continuation), 병합(merging), 분리(splitting) 상태로 구분하였으며, 각 블랍을 추적함으로써 객체를 추적하였다.
따라서, 선행특허는 단일 객체(object)가 분열(fragmentation)되어 복수의 블랍으로 표현되거나, 복수의 객체(object)가 그룹핑(grouping)되어 단일 블랍으로 표현될 경우에는, 해당 객체를 정확하게 추적할 수 없는 문제점이 있다.
이를 보다 상세하게 설명하면, 객체 추적의 전처리 단계인 전경 영상 추출(또는 배경 영상 제거) 과정을 통해 임의의 프레임 t에서 추출된 블랍들의 집합을
Figure 112011104606711-pat00143
로 나타낸다. 이때, 임의의 블랍
Figure 112011104606711-pat00144
는 프레임 t에서의 i번째 연결된 전경 픽셀들의 집합(a set of connected foreground pixels)으로 정의되는데, 즉, t번째 프레임에서 i번째 블랍(blob)을 나타낸다. 이때, 하나의 객체가 하나의 블랍으로 표현되면 용이하게 객체를 추적할 수 있을 것이다.
그러나, 도 1에 도시된 바와 같이 두 객체가 겹쳐져서 하나의 블랍으로 표현되거나(이를 그룹핑(grouping)이라 함), 하나의 객체가 2개의 블랍으로 표현되는(이를 분열(fragmentation)이라 함) 현상이 발생한다. 하나의 객체의 분열은, 이동 객체가 나무나 벽 같은 배경에 가려지는 경우나, 이동 객체의 일부분이 배경과 흡사하여 배경으로 판단되는 경우에 발생한다.
이러한 그룹핑과 분열에 따른 문제를 해결하기 위한 방법은 2가지 접근방법으로 구분된다. 첫 번째 방법은 클래스 특정 모델(class-specific models)을 이용하여 객체를 검출하는 방법으로서, Zhao 등은 "Tracking multiple humans in crowded environment", CVPR 2004, Washington DC, July, 2004 에서, 머리, 몸통, 다리를 나타내는 3개의 타원체로 걷거나 서 있는 사람을 모델링함으로써 그룹핑과 분열의 문제를 해결하는 방법을 제안한다. 그러나, 이러한 방법은 사전에 관심 객체들에 대한 모델을 만들어야 하기 때문에, 영상에 출현하는 관심 객체의 종류가 다양해지면 이들 모두를 모델링하는 것 자체가 불가능하다. 또한, 사람과 같이 다양한 형태를 갖는 객체(non-rigid object)에 대해 다양한 형태별로 모델링하기도 곤란하다.
두 번째 방법은 운동(motion) 정보에 기초한 일반적 객체 모델(generic object model)을 이용하여 객체를 검출하는 방법이다. 대표적인 예로서, Choi 등이 제안한 논문 "A View-Based Real-Time Human Action Recognition System as an Interface for Human Computer Interaction", Lecture Notes in Computer Science (LNCS), Vol. 4820, March, 2008 과, Gabriel 등이 제안한 논문 "The State of the Art in Multiple Object Tracking Under Occlusion in Video Sequences", Advanced Concepts for Intelligent Vision Systems, pp. 166-173, 2003 이 있다. 상술한 논문에서는, 모폴로지 연산(morphology operations)을 이용하거나 일정 거리 이내의 가까운 블랍들을 다시 하나의 블랍으로 묶어서 분열 문제를 해결한다. 그리고, 하나의 블랍은 최소 한 개 이상의 객체를 포함한다고 모델링하여 블랍 추적(blob tracking)을 통해 그룹핑 문제를 해결한다.
이에 Bose 등은 "Multi-class object tracking algorithm that handles fragmentation and grouping", CVPR 2007, June, 2007 에서, 각 블랍들의 공간적 집약성(spatial locality)과 일관된 움직임(coherent motion)을 바탕으로 일반적 객체 모델을 제안하여 객체의 분열과 그룹핑 문제를 동시에 해결하였다.
그러나, 이 Bose 등이 제안한 방법은, 일괄로 처리되고 이전에 추론된 정보를 이용하지 않기 때문에 비효율적이며 정확한 객체 추적이 이루어지지 않는 문제점이 있다.
상술한 종래기술의 문제점을 해결하기 위하여 안출된 이 발명의 목적은, Bose 등이 제안한 방법을 변형함으로써 효율적이고 정확한 실시간 복수 객체 추적 시스템 및 방법을 제안하기 위한 것이다.
상기한 목적을 달성하기 위한 이 발명에 따른 실시간 다수 객체 추적시스템은, 프레임 t-1에서 추출된 블랍 집합 Bt-1의 각 원소에 칼만 필터를 적용한 예측 블랍 집합
Figure 112011104606711-pat00145
와 프레임 t에서 추출된 블랍 집합 Bt 사이에서 발생하는 블랍 연관 이벤트의 종류를 추출하고 상기 추출된 블랍 연관 이벤트의 종류에 따라 블랍을 추적하는 블랍추적수단과,
상기 프레임 t-1에서 생성된 블랍 추론 그래프를 이용하여 상기 프레임 t에서 추적된 블랍들에 대해 상기 블랍 연관 이벤트의 종류에 따라 새로운 버텍스와 유향에지를 추가하거나 삭제하여 상기 블랍 추론 그래프를 업데이트하는 블랍추론그래프갱신수단과,
상기 블랍 추론 그래프를 구성하는 버텍스들 중 일관된 움직임을 갖는 버텍스들을 하나의 객체로 묶고 하나의 라벨을 할당하는 블랍추론그래프라벨링수단과,
상기 블랍 추론 그래프를 구성하는 버텍스들의 라벨과 블랍 연관 이벤트의 종류에 따라 객체 연관 이벤트 발생 여부를 판단하고, 객체 연관 이벤트를 기반으로 상기 버텍스에 객체를 할당하는 객체위치할당수단을 포함하며, 상기 블랍 연관 이벤트의 종류는 계속, 병합, 분리, 등장, 퇴장을 포함한 것을 특징으로 한다.
또한, 이 발명에 따른 실시간 다수 객체 추적방법은, 프레임 t-1에서 추출된 블랍 집합 Bt-1의 각 원소에 칼만 필터를 적용한 예측 블랍 집합
Figure 112011104606711-pat00146
와 프레임 t에서 추출된 블랍 집합 Bt 사이에서 발생하는 블랍 연관 이벤트의 종류를 추출하고 상기 추출된 블랍 연관 이벤트의 종류에 따라 블랍을 추적하는 블랍추적단계와,
상기 프레임 t-1에서 생성된 블랍 추론 그래프를 이용하여 상기 프레임 t에서 추적된 블랍들에 대해 상기 블랍 연관 이벤트의 종류에 따라 새로운 버텍스와 유향에지를 추가하거나 삭제하여 상기 블랍 추론 그래프를 업데이트하는 블랍추론그래프갱신단계와,
상기 블랍 추론 그래프를 구성하는 버텍스들 중 일관된 움직임을 갖는 버텍스들을 하나의 객체로 묶고 하나의 라벨을 할당하는 블랍추론그래프라벨링단계와,
상기 블랍 추론 그래프를 구성하는 버텍스들의 라벨과 블랍 연관 이벤트의종류에 따라 객체 연관 이벤트 발생 여부를 판단하고, 객체 연관 이벤트를 기반으로 상기 버텍스에 객체를 할당하는 객체위치할당단계를 포함하며, 상기 블랍 연관 이벤트의 종류는 계속, 병합, 분리, 등장, 퇴장을 포함한 것을 특징으로 한다.
이상과 같이 이 발명에 따르면 객체가 분할되거나 그룹화되는 경우 이를 객체의 병합이나 분리와 구분하여 추적할 수 있기 때문에, 실시간으로 다수의 객체를 정확하게 추적할 수 있다. 이 발명은 지능형 무인감시시스템, 영상검색, 지능형 로봇 등 객체 추적기술을 필요로 하는 모든 분야에 사용할 수 있다.
도 1에 두 객체가 겹쳐져서 하나의 블랍으로 표현되거나(이를 그룹핑(grouping)이라 함), 하나의 객체가 2개의 블랍으로 표현되는(이를 분열(fragmentation)이라 함) 현상을 도시한 도면이다.
도 2는 영상 내에서 하나의 이동 객체가 분열 때문에 여러 개의 블랍들로 쪼개져 표현되는 경우(a)와, 다수의 이동 객체들가 하나의 블랍으로 표현되는 경우(b)를 도시한 도면이다.
도 3은 이 발명의 한 실시예에 따른 실시간 다수 객체 추적시스템을 도시한 기능 블록도이다.
도 4는 5 종류의 블랍 연관 이벤트(a)와 블랍 연관 행렬(b)를 도시한다.
도 5는 병합 이벤트와 분리 이벤트가 동시에 발생했을 때 처리과정을 도시한 도면이다.
도 6은 병합과 분리가 동시에 발생한 프레임의 일 예를 도시한 도면이다.
도 7은 블랍 추론 그래프를 도시한 도면이다.
도 8은 추출된 블랍들의 시퀀스와 그로부터 만들어진 블랍 추론 그래프를 도시한 도면이다.
도 9는 사람이 걷는 동안 분열이 발생할 경우, 유향 에지를 추가한 과정을 도시한 도면이다.
도 10은 일관된 움직임을 설명하기 위하여 도시한 도면이다.
도 11은 고유식별자를 부여하는 상태를 도시한 도면이다.
도 12는 두 개의 객체들이 하나로 합쳐진 후 프레임 큐의 크기보다 오랜 시간 동안 합쳐진 상태를 지속할 때, 이전 추적 정보가 사라지는 상태를 도시한다.
도 13은 블랍 연관 이벤트 로그가 필요한 사례를 도시한 도면이다.
도 14는 4개의 객체들을 갖는 그룹 버텍스가 두 개의 자식 버텍스로 분리되는 과정을 도시한 도면이다.
도 15는 블랍추론그래프에서 가장 오래된 프레임의 버텍스가 삭제되어 필요한 정보가 사라지는 문제점을 설명하기 위하여 도시한 도면이다.
도 16은 이 발명에 따른 객체 추적모듈을 CAVIA dataset에 적용하여 객체의 분열(fragment)을 처리하는 예를 도시한 도면이다.
도 17은 이 발명에 따른 객체 추적모듈은 CAVIA dataset에 적용하여 연속된 프레임으로부터 객체를 추적한 결과를 도시한 도면이다.
이하, 첨부된 도면을 참조하며 이 발명의 한 실시예에 따른 실시간 다수 객체 추적시스템 및 방법을 보다 상세하게 설명하면 다음과 같다.
이 발명의 실시예를 설명하기에 앞서 이 발명의 명세서에서 사용하는 블랍과 객체의 의미를 정의한다.
블랍(blob)
하나의 블랍
Figure 112011104606711-pat00147
는 프레임 t에서의 i번째 연결된 전경 픽셀들의 집합(a set of connected foreground pixels)으로 정의되며, 상태 벡터(state vector)
Figure 112011104606711-pat00148
를 갖는다. 이때,
Figure 112011104606711-pat00149
는 중심 위치(centroid position)이고,
Figure 112011104606711-pat00150
는 중심 속도(centroid velocity)이다. 또한, 하나의 블랍은 하나의 객체, 분열된 객체의 조각, 둘 이상 객체의 그룹으로 나타낼 수 있다. 각 블랍의 중심 위치와 중심 속도를 예측하기 위해 수식 1에 기재된 정속도(constant velocity)를 갖는 모델을 사용한다.
Figure 112011104606711-pat00151
여기서, xt는 위치와 속도를 나타내는 벡터이고, Zt 는 관찰된 위치이다. 또한, Wt는 처리 잡음(process noise)이고, Vt는 관찰 잡음(observation noise)이며, Δt는 마지막 갱신 이후 시간 간격(time interval)이다. 매 프레임마다 칼만 필터(Kalman filter)를 이용하여 다음 프레임에서의 블랍의 위치를 예측하고, 수식 1의 모델을 이용하여 최적의 위치를 얻으며 필터 파라메터를 갱신한다.
객체(object)
영상 내에서 하나의 이동 객체는 도 2에 도시된 바와 같이 단일 블랍으로 표현되기도 하지만, 도 2의 (a)에 도시된 바와 같이 분열 때문에 여러 개의 블랍들로 쪼개져 표현되기도 한다. 이때, 하나의 객체가 분열된 조각 블랍들은 거의 동일하게 움직인다. 반면에 다수의 이동 객체들은 도 2의 (b)에 도시된 바와 같이 하나의 블랍으로 표현되기도 하는데, 이때 두 객체를 표현한 하나의 블랍이 쪼개지더라도 쪼개진 두 블랍들의 속도는 연관성이 없다. 이러한 관찰을 토대로 Bose 등이 일반적 객체 모델(generic object model)을 제안하였다.
Bose 등은 하나의 객체를 공간적 연결성(spatial connectedness)와 일관된 움직임(coherent motion)의 특성을 만족시키는 블랍들의 최대 집합(a maximal set of blobs)으로 모델링한다. 여기서, 공간적 연결성이란 고려대상인 블랍들이 블랍 추적 과정 중에 하나의 대표 블랍을 구성하였거나 대표 블랍으로부터 파생되었음을 의미한다. 또한, 일관된 움직임이란 고려대상인 블랍들이 상당한 기간동안 동일하게 움직이는 것을 말한다. 이러한 일반적 객체 모델을 사용하면 알려지지 않는 객체도 쉽게 추적할 수 있으며, 궁극적으로 이 발명에 따른 프레임워크의 응용범위를 확장할 수 있게 된다.
이 발명은 상술한 Bose 등이 제안한 일반적 객체 모델(generic object model)을 변경하여 그 효율을 높이기 위한 것인 바, 이 발명에서는 추가적으로 객체의 특성을 모델에 추가하여 하나의 상태 정보로 나타낸다. 이 발명에서 사용하는 객체 oi의 상태 정보는 수식 2와 같다.
Figure 112011104606711-pat00152

여기서, 임의의 객체 oi의 상태 정보는 위치(uoi), 속도(voi), 공간적 구성(∧oi), 색상 히스토그램(Hue histogram : Hoi)으로 이루어진다. 공간적 구성(∧oi)은 다시 말해, 객체 oi를 가우시안 N(uoi,∧oi)로 모델링했을 때 얻어지는 공분산행렬(covariance matrix)로서, x-y 평면 상에서 oi를 구성하는 픽셀들의 대략적인 분포를 나타낸다. 이 정보는 단일 객체로 추적되는 동안 계속 갱신된다.
또한, 임의의 두 객체(oi와 oj) 사이의 객체 유사성(object similarity) s(oi, oj)는 수식 3과 같이 정의하고, 이를 통해 그룹을 구성한 객체들이 나누어질 때 객체들의 정확한 추적이 가능해 진다.
Figure 112011104606711-pat00153
여기서, α+β+γ = 1, 0≤α,β,γ≤1 이다.
dhue는 색상 히스토그램 사이의 표준화된 바타차리야 거리(bhattacharyya distance)이며, dsize는 모양들 사이의 표준화된 크기 차이이고, ddist는 중심 위치 사이의 표준화된 유클리드 거리(Euclidean distance)이다.
도 3은 이 발명의 한 실시예에 따른 실시간 다수 객체 추적시스템을 도시한 기능 블록도이다.
이 발명에 따른 실시간 다수 객체 추적시스템의 앞 단에는 도시되지 않은 전처리 시스템이 장착되며, 이 전처리 시스템이 카메라로부터 촬영한 영상으로부터 블랍들을 추출하여 이 발명의 실시간 다수 객체 추적시스템에 그 블랍 정보들을 제공한다.
이 발명에 따른 실시간 다수 객체 추적시스템은 블랍추적(blob tracking)수단(31)과, 블랍추론그래프갱신(blob inference graph updating)수단(32)과, 블랍추론그래프라벨링(blob inference graph labeling)수단(33)과, 객체위치설정(object localizing)수단(34)을 포함하여 이루어진다.
블랍추적수단(Blob Tracking)(31)
블랍추적은 객체 추적에 가장 기본적이면서 중요한 정보로 제공된다. 블랍추적 정보는 공간적 연결성(spatial connectedness)와 일관된 움직임(coherent motion)을 파악하기 위한 추론 그래프 생성에 사용된다.
블랍추적수단(31)의 블랍추적과정을 설명한다.
연이은 두 개의 프레임에서 추출된 블랍 집합 Bt-1 와 Bt 을 입력받고, 블랍 집합 Bt-1에 칼만 필터(Kalman filter)를 적용하여 예측 블랍집합
Figure 112011104606711-pat00154
을 생성하고, 예측 블랍집합
Figure 112011104606711-pat00155
과 입력 블랍집합 Bt 사이에서 발생하는 블랍 연관 이벤트(blob association events)를 추출하여, 블랍을 추적한다.
이때, 블랍 연관 이벤트에는 블랍의 5가지 상태 즉, 도 4 (a)에 도시된 바와 같이 계속(continue), 병합(merge), 분리(split), 등장(appear), 퇴장(disappear) 상태가 포함된다. 계속(continue)는 t-1 프레임과 t 프레임에 동일한 블랍이 계속하여 존재하는 경우이고, 병합(merge)은 t-1 프레임에 존재하는 두 개의 블랍이 t 프레임에서 하나로 묶여진 경우이고, 분리(split)는 t-1 프레임에 존재하는 하나의 블랍이 t 프레임에서 둘로 나뉘어진 경우이고, 등장(appear)은 t-1 프레임에 존재하지 않던 블랍이 t 프레임에서 새로 나타난 경우이고, 퇴장(disappear)은 t-1 프레임에 존재하던 블랍이 t 프레임에서 사라진 경우이다.
Huang 과 Essa는 "Tracking Multiple Objects Through Occlusions", CVRP 2005, San Diego, CA, Jun, 2005 에서, 이러한 블랍 연관 이벤트들은 블랍들간의 연관 관계를 나타내는 연관 행렬로 유추할 수 있다고 제안하였는 바, 이 발명에서는 먼저 연관 행렬을 구한 후 블랍 연관 이벤트들을 추출한다.
먼저, 연관 행렬을 결정하는 방법을 설명하면, 픽셀 수준에서 예측 블랍집합
Figure 112011104606711-pat00156
에 해당하는 영역과 입력 블랍집합 Bt 에 해당하는 영역을 교차시켜서 연속된 두 프레임에서 추출된 블랍 집합 Bt-1 와 Bt 의 연관 행렬 M을 만든다. M을 구성하는 원소값은 아래의 수식 4와 같이 결정된다.
Figure 112011104606711-pat00157
여기서,
Figure 112011104606711-pat00158
는 t-1 프레임에서 i번째 블랍을 칼만필터로 예측한 영역의 크기이고,
Figure 112011104606711-pat00159
는 t 프레임에서 j번째 블랍의 영역 크기이다.
Figure 112011104606711-pat00160
Figure 112011104606711-pat00161
Figure 112011104606711-pat00162
사이의 겹쳐진 영역의 크기이며, to는 임의로 설정되는 임계값이다. 즉, 영역을 교차시킨 결과,
Figure 112011104606711-pat00163
Figure 112011104606711-pat00164
사이에 상당량의 겹쳐진 영역이 존재하면, 도 5의 (b)에 도시된 바와 같이 M[i,j]=mij=1로 갱신하고, 그렇지 않은 경우에는 M[i,j]=mij=0 으로 설정한다.
상술한 바와 같이 연관 행렬 M이 결정되면, 이를 이용하여 블랍 연관 이벤트들을 유추한다. 블랍 연관 이벤트들의 각 상태를 결정하는 방법은 아래의 수식 5와 같다.
Figure 112011104606711-pat00165

여기서, |Bt|는 프레임 t의 블랍 집합의 크기(개수)를 의미하며, |Bt-1|는 프레임 t-1의 블랍 집합의 크기(개수)를 의미한다. mij는 연관 행렬 M의 원소 (i,j)의 값으로서, M[i,j]와 동일하다.
여기서, 병합과 분리가 동시에 발생한 경우에는, 도 5의 (a)에 도시된 바와 같이 병합과 분리를 동시에 처리하는 것이 아니라, 도 5의 (b)에 도시된 바와 같이 병합을 먼저 처리한 후 분리를 처리한다.
프레임에서 병합과 분리가 동시에 발생한지 여부를 찾는 방법은, 연관 행렬 M 에서,
Figure 112011104606711-pat00166
를 만족하는 k와
Figure 112011104606711-pat00167
를 만족하는 l을 갖는 mkl 이 있는지 확인하는 것이다. 이러한, mkl 가 존재하면, 도 5의 (b)에 도시된 바와 같이 병합과 분리가 발생한 모든 블랍들을 합한 새로운 블랍을 포함하는 가상 프레임(virtual frame)을 중간에 삽입한다. 도 6은 병합과 분리가 동시에 발생한 프레임의 일 예를 도시한 도면이다.
t-1 프레임에서 추출된 블랍 집합 Bt-1 와 t 프레임에서 추출된 블랍 집합 Bt 사이의 연관성이 결정되면, 블랍 집합 Bt에 속한 블랍들의 속도를 설정한다. 이때, 등장 상태의 블랍의 속도는 0으로 설정하고, 계속 상태의 블랍의 속도는 t-1 프레임의 연관 블랍의 속도로 설정하고, 병합 상태의 블랍의 속도는 t-1 프레임의 연관 블랍들의 평균 속도로 설정하고, 분리 상태의 블랍들의 속도는 t-1 프레임의 연관 블랍의 속도로 설정한다.
블랍추론그래프갱신수단(Blob Inference Graph Updating)(32)
상술한 바와 같이 블랍추적수단(31)이 연속된 프레임에서 추출된 블랍들을 추적하면, 블랍추론그래프갱신수단(32)은 이를 도 7에 도시된 바와 같은 블랍 추론 그래프로 표현한다.
종래의 그래프를 생성하는 간단한 방법은, 하나의 블랍을 하나의 버텍스(vertex)에 연결하고, 블랍 연관 이벤트의 종류(등장, 퇴장, 계속, 병합, 분리)에 따라 에지(edge)를 생성한다. 그러나, 이렇게 간단하게 생성된 그래프로는 블랍들간의 공간적 연결관계의 체계(hierarchy)를 표현하기 어렵기 때문에 하나의 객체의 조각 블랍들도 각각 다른 버텍스에 연결된다.
이 발명에서는 이러한 문제를 개선하기 위하여 Bose 등이 상술한 논문에서 제안한 목표 설정 추론그래프 개념을 적용하여 도 7에 도시된 바와 같은 블랍추론그래프 g를 생성한다. 이 블랍추론그래프는 동등한 블랍들은 동일한 버텍스에 연결되고, 병합과 분리 이벤트가 발생하면 유향 에지(directed edge)를 이용하여 체계(hierarchy)를 표현한다.
이때, Bose 등은 매 프레임마다 목표 설정 추론그래프를 새롭게 만들지만, 이 발명에서는 하나의 블랍추론그래프를 유지하며 갱신하기 때문에 이 블랍추론그래프에 기반한 객체 추적이 가능해진다.
또한, Bose 등은 병합과 분리 이벤트 발생 전후에 객체의 영역이 변하지 않는다고 가정한다. 따라서, 두 개의 버텍스들의 등가성(equivalence)을 나타내기 위해 영역의 결합을 사용했다. 하지만 이러한 가정은 도 8의 (a)에 도시된 바와 같이 객체 모양이 변하면 성립하지 않는다.
이러한 문제를 해결하기 위해, 이 발명에서는 버텍스 등가성을 버텍스 레벨(vertex level)에서 구체화함으로써, 보다 정확한 객체 추적이 가능해 지도록 한다.
블랍추론그래프 g 에 속한 임의의 버텍스 vi 는 하나 이상의 버텍스 단위 집합(Vertex Units Set, VUS)으로 표현된다. 여기서, 버텍스 단위(Vertex Unit, VU)는 버텍스의 최소 단위로서 g의 리프노드(leaf node)에 위치한 버텍스가 해당된다. VUS를 통해서 두 개의 버텍스를 비교할 수 있다.
vi 는 상태 벡터 (R(vi),Q(vi),l(vi),O(vi),c(vi),블랍 연관 이벤트큐)로 나타낸다. 여기서, R(vi)는 연관된 블랍의 집합이고, Q(vi)는 버텍스 단위 집합들의 모음(collection)이고, l(vi)는 라벨이고, O(vi)는 객체의 집합이고, c(vi)는 컨피던스 플래그(confidence flag)이다.
블랍 연관 이벤트가 결정되면, 그 종류에 따라 아래의 수식 6과 같이 블랍추론그래프 g를 갱신한다. 여기서, v(
Figure 112011104606711-pat00168
) 는
Figure 112011104606711-pat00169
가 속한 버텍스를 의미한다.
Figure 112010020633111-pat00066

위의 수식 6을 풀어서 설명하면, 등장(appear) 상태의 블랍에 대해서는 그 블랍이 속한 새로운 버텍스를 추가하고(v(
Figure 112011104606711-pat00170
) 추가), 계속(continue) 상태의 블랍에 대해서는 이전 프레임에서 연관 블랍이 속한 버텍스를 유지한다(v(
Figure 112011104606711-pat00171
) = v(
Figure 112011104606711-pat00172
)). 병합(merge) 상태의 블랍에 대해서는 새로운 버텍스 v(
Figure 112011104606711-pat00173
) 와 유향 에지를 추가하는데, 이 유향 에지의 꼬리가 v(
Figure 112011104606711-pat00174
)이고 머리가 v(
Figure 112011104606711-pat00175
)과 연관된 이전 프레임에서의 블랍이 속한 버텍스들
Figure 112011104606711-pat00176
이 되도록 한다. 한편, 분리(split) 상태의 블랍에 대해서는 이전 프레임의 블랍과 연관된 새로운 버텍스들
Figure 112011104606711-pat00177
을 추가하고 그
Figure 112011104606711-pat00178
Figure 112011104606711-pat00179
를 연결하는 유향 에지를 추가한다.
이렇게 블랍추론그래프(g)를 갱신한 후, 공간적 연결성(spatial relations)의 체계(hierarchy)를 명확히 하기 위하여 다음 특징을 만족하도록 블랍추론그래프(g)를 수정한다. 임의의 두 버텍스가 동등하다면, 그 두 버텍스의 트랙(track)은 같은 버텍스에 연결되어야 한다. vj 가 vi 의 부분집합(subset)이면, vj는 vi의 자식(descendant)이다. 버텍스 동등 관계(Vertex equivalence relation)와 부분집합 관계(subset relation)를 아래의 수식 7과 같이 정의한다.
Figure 112011104606711-pat00180
블랍추론그래프(g)를 수정하기 위한 특징은 다음과 같다.
첫째, 모든 버텍스(vertex)들을 쌍을 잡아서 두 버텍스가 동등한지 확인하고 동등할 경우, 두 버텍스를 합쳐서 하나의 버텍스로 만든다. 예를 들어, 도 8의 (a)는 추출된 블랍들의 시퀀스이고, 도 8의 (b)는 도 8의 (a)로부터 만들어진 블랍 추론 그래프를 Q(vi)와 함께 도시한다. 이 예에서 v3 과 v6 은 모두 VUS{v4,v5} 를 갖고 있기 때문에 동등하다. 즉, v3 가 v4,v5 로 분열되고, 다시 v6 으로 그룹핑되기 때문에 v3 과 v6 은 동등하며 따라서, 이들 버텍스들을 도 8의 (c)에 도시된 바와 같이 하나의 버텍스 v3 로 합친다. 도 8의 (d)를 참조하면, 도 8의 (a)에 비해 상황을 보다 정확하게 나타내고 있음을 알 수 있다.
둘째, 루트 버텍스(root vertex)의 모든 쌍에 대해서, 임의의 한 루트 버텍스 vj 가 다른 버텍스 vi 의 부분집합인지를 확인한다. 만약 그렇다면 vi 로부터 vj 로 향하는 에지를 추가한다. 예를 들어 설명하면, 도 9의 (a)에 도시된 바와 같이 사람이 걷는 동안 분열이 발생할 경우, v5 는 v1 의 부분집합이기 때문에 v1 로부터 v5 로 향하는 에지를 추가한다. 이 경우, v1 는 몸 전체를 나타내고, v5 는 몸의 일부를 나타낸다. 따라서,도 9의 (b)에 도시된 바와 같이 v1 로부터 v5 로 향하는 에지는 공간적 연결성을 정확하게 나타내게 된다.
블랍추론그래프라벨링수단(33)
블랍추론그래프 g 에 있는 각각의 버텍스는 연관된 블랍들을 대표하며, 그 상태에 따라 분열(F), 객체(O), 그룹(G)으로 분류될 수 있다. 블랍추론그래프 라벨링수단(33)은 동일 객체에 속하는 버텍스들을 하나로 묶고, 해당 버텍스에 레벨을 할당한다. 이를 위해 일관된 움직임(coherent motion) 제약을 강요한다. 다시 말해 묶여진 버텍스들이 일관된 움직임을 위반할 때까지 자식 버텍스를 부모 버텍스에 묶는데, 이를 바텀업 그래프 알고리즘(bottom-up graph algorithm)이라 한다.
일관된 움직임(Coherent motion) 제약은 하나의 객체로부터 파생된 임의의 2개의 버텍스는 매 프레임별로 얻어진 블랍들을 시간 순으로 정렬할 경우, 동일 프레임에 존재하는 블랍 쌍에 대해서 속도차(velocity difference)들의 평균을 구한 값 ΔT 의 평균이 0이고, 그 분산이 작은 가우시안 분포를 따른다. 반면에 다른 객체들로부터 파생된 두 개의 버텍스들의 경우에는 속도차 평균이 0이고, 분산이 큰 가우시안 분포를 따른다.
따라서 N개의 프레임에서 관찰된 속도차 Δ0를 ΔT가 속한 가우시안 분포로 모델링한다. c(Wi,Wj)는 지시함수(indicator function)로서 도 10에 도시된 바와 같이 Wi 와 Wj 에 연관된 블랍들이 일관되게 움직이면 1이고, 아니면 0이다. 속도차 Δ0가 주어질 때, 부모 V의 자식 Wi,Wj에 있는 블랍들이 일관된 움직임 (coherent motion)을 만족하는 확률 p(c(Wi,Wj)=1|Δ0)는 아래의 수식 8과 같다.
Figure 112010020633111-pat00091

이 수식 8의 확률은 부모 버텍스 V가 그룹인지와, 자식들의 쌍들이 객체인지를 결정하기 위한 가설검정 알고리즘(hypothesis test algorithm)에서 사용된다. 그리고, 객체로 분류된 버텍스의 후손들(descendants)는 분열된 조각이기 때문에 그래프에 표시된 부모-자식 관계에 기초하여 분열(fragment)로 분류한다.
버텍스를 객체(object), 분열(fragment) 또는 그룹(group)으로 분류하고, 아울러 알고리즘의 중간 단계에서 일시적으로 '그룹 분열(fragment-of-group)'과 '객체 가능(possible-object)' 이라는 버텍스 라벨을 부여한다.
그룹 분열 라벨은 모든 자식들과 일관되게 움직이는 그룹 버텍스 V의 자식들 Wi를 위해 사용된다. 자식 버텍스들은 객체로부터 파생된 다수의 조각들이거나, 다수의 객체가 함께 움직여서 구분이 불가능한 경우일 수도 있다. 객체 가능 라벨은 그룹 버텍스 V의 자식들 Wi,Wj이 일관된 움직임을 보이지 않아서 하나의 객체로 속할 수 없는 경우에 Wi,Wj에 부여된다. 즉, 객체 가능 라벨이 부여된 객체들 중에 어떤 것은 실제로 그룹 분열 상태일 수도 있기 때문에, 즉시 객체로 갱신되지는 않는다. 그룹 분열 라벨과 객체 가능 라벨은 분열, 객체, 또는 그룹으로 분류된다.
블랍추론그래프라벨링수단(33)이 블랍추론그래프의 각 버텍스에 라벨링하는 과정을 설명하면 다음과 같다.
초기화(Initialization)
부모 V에 대응하는 자식 W의 부모-결정 변수 d(W,V)는 W가 V의 다른 자식들과 일관되게 움직이면 0, 그렇지 않은 경우에는 1이며, 0으로 초기화 한다. 이 값은 나중에 객체 가능 객체들의 최종 라벨을 할당할 때 사용된다.
바텀업 프로세싱(Bottom-Up Processing)
각각의 버텍스들를 확인하여 그들의 자식들이 일관되게 움직였는지를 검사한다. 임의의 버텍스의 모든 자식들이 다 확인되고 나서야 버텍스도 확인된다. 만약 V가 리프이면, 확인된 것으로 표시하고, 다음을 진행한다. 리프가 아니면, V가 그룹인지를 검사한다. 이것은 V의 자식들 중 하나가 그룹이거나 어떤 쌍 Wi,Wj 가 일관된 움직임 제약을 위반하는 경우에 일어난다. 이를 수식으로 표현하면 수식 9와 같다.
Figure 112010020633111-pat00095

여기서, p(c(Wi,Wj)=1|Δ0)는 모든 자식 버텍스에 있는 블랍들이 일관되게 움직일 확률이며, 이 발명에서는 자식들 vi, vj의 모든 쌍들 중에 min(p(c(Wi,Wj)=1|Δ0)) 로 정의한다. 단, 일관된 움직임 제약 확인을 위한 버텍스 쌍을 지을 때, VUS 단위로 고려한다. 왜냐하면, 다른 VUS들에 존재하는 버텍스들은 같은 시간에 존재하지 않기 때문에 일관된 움직임을 가질 수 없기 때문이다. 만약, 수 9에서 구한 p(l(vi)=G|Δ0)>0.5이면, V는 그룹으로 분류된다. p(c(Wa,Wb)=1|Δ0)<0.5 인 자식들 Wa,Wb의 모든 쌍에 대해서, Wa,Wb가 그룹으로 분류되지 않았으면 객체 가능으로 분류되고, d(Wa,V)=1, d(Wb,V)=1로 설정된다.
버텍스 라벨 갱신(Updating Vertex-labels)
분열 상태로 분류된 루트 버텍스는 객체 라벨로 갱신된다. 만약 그룹 버텍스 V가 d(W,V)=0인 객체 가능 자식 객체 W 를 가지고 있으면, W는 그룹 분열 라벨로 갱신된다. 객체 가능 라벨로 분류되고 모든 부모 버텍스들 Wk 에 대해서 d(W,Vk)=1 인 버텍스 W는 객체 라벨로 갱신된다. 이는 그 버텍스에 속한 블랍들이 다른 버텍스에 있는 블랍들과 일관적으로 움직이지 않기 때문이다.
고유아이디 부여(Assignment of sIDs)
모든 버텍스에 고유아이디(sID)를 부여한다. 객체 버텍스들과 그룹 버텍스들에 각각 고유아이디(sID)를 할당하고, 분할 버텍스들에는 그들의 객체 부모 또는 그룹 부모와 같은 고유아이디(sID)를 할당한다. 도 11은 버텍스에 라벨과 고유아이디(색깔로 표시)를 표시한 일 예를 도시한 도면이다.
신뢰 플래그(Confidence Flag)
프레임 큐(Frame queue)의 크기가 한정적이며, 앞의 초기화 단계를 매번 실행하기 때문에, 추적 정보가 손실될 수 있다. 예를 들어 도 12에 도시된 바와 같이 떨어져 있던 두 개의 객체들이 하나로 합쳐진 후 프레임 큐의 크기보다 오랜 시간 동안 합쳐진 상태를 지속하게 되면 이전 추적 정보가 사라져서, t=2+k일 때 실제로는 그룹 버텍스이지만 객체로 라벨되게 된다. 만약, 어떤 버텍스의 추적 결과가 충분히 믿을 만하다면, 그 버텍스의 라벨을 계속 유지하는 것이 더 낫다. 따라서, 버텍스에 수식 10과 같은 신뢰 플래그(confidence flag) c(vi)를 결정하고 결정된 c(vi)=true 이면 버텍스의 라벨을 초기화하지 않는다. 또한, c(vi)=true 인 객체 버텍스를 자식으로 갖는 부모 버텍스는 그룹으로 라벨된다.
Figure 112010020633111-pat00104
여기서, k는 프레임 큐 사이즈이다. c(vi)는 객체 로컬라이징 후 정해진다.

객체위치설정수단(Object Localization)(34)
블랍 연관 이벤트에 따라 추론그래프의 구조나 버텍스의 상태가 변화하며 대부분 이를 통해 객체 연관 이벤트를 유추할 수 있다. 하지만 블랍 레벨에서 블랍 연관 이벤트가 발생했더라도 객체 레벨에서는 객체 연관 이벤트가 아닐 수 있기 때문에 블랍 연관 이벤트를 버텍스에 기록하고 해당 버텍스가 객체로 판단될 때 객체 병합이나 객체 분리를 처리한다.
블랍 연관 이벤트 기록(Blob Association Event Record)
분할을 고려하지 않은 이전의 객체 추적방법에서는 블랍 레벨에서 병합/분리 이벤트가 발생하면 곧바로 객체 레벨에서의 병합/분리를 의미한다. 하지만 이 발명에서는 블랍 레벨에서 병합/분리 이벤트가 발생하면 그룹의 분할일 수도 있기 때문에 바로 객체 병합/분리로 판단할 수 없다.
도 13은 블랍 연관 이벤트 로그가 필요한 사례를 도시한 도면이다.
도 13에서 t=1일 때, 블랍 레벨에서 분리 이벤트가 발생했으나 이것이 객체 분리로 판단되기에는 어느 정도의 시간이 필요하다. 그리고, 객체 분리로 유추하고 객체를 로컬리제이션(localization)하기 위해서는 분리 이벤트 정보가 필요하다. 따라서 블랍 레벨에서 분리 이벤트가 발생하면 블랍연관 이벤트 기록부를 이용하여 버텍스 v1에 기록하고, 추후 객체 분리로 판단될 때 활용하면 올바른 객체 로컬리제이션 결과를 얻을 수 있다. 블랍 연관 이벤트 기록부는 이벤트가 발생된 시간, 이벤트 종류, 그리고 이벤트와 연관된 블랍들로 구성되고 모든 블랍 연관 이벤트에 대해서 레코드를 생성하고 해당 버텍스의 이벤트 큐에 저장한다.
객체 연관 이벤트 추론(Object Association Events Inference)
기본적으로 앞의 과정을 통해 얻어진 추론 그래프의 버텍스의 라벨에 따라 객체 연관 이벤트가 발생했는지 판단한다. 특히, 객체 또는 그룹으로 라벨된 버텍스에서 객체 연관 이벤트가 발생한다.
먼저, 프레임 t에서 버텍스 vi의 라벨 (
Figure 112011104606711-pat00181
)이 분할(F)이고 해당 버텍스의 이전 프레임에서의 라벨이 객체인 경우 그 버텍스는 객체가 아닌 것으로 판단한다.
프레임 t 에서 버텍스 vi의 라벨(
Figure 112011104606711-pat00182
)이 객체(O)인 경우, 객체 계속, 객체 등장, 객체 분리 중 하나의 이벤트가 발생한 것이다. 구체적으로 버텍스 vi의 프레임 t-1에서의 라벨이 객체(O)이면 객체 계속 이벤트로 판단한다. 만약 버텍스 vi의 프레임 t-1에서의 라벨이 객체가 아닌 경우 객체 등장이나 객체 분리 중 하나인데, 프레임 t에서 해당 버텍스가 루트로 존재하면 객체 등장으로 판단하고, 그렇지 않은 경우에는 객체 분리로 판단한다.
한편, 프레임 t에서 버텍스 vi의 라벨이 그룹(G)인데, 프레임 t-1에서 해당 버텍스의 라벨이 그룹이 아닌 경우에는 객체 병합이 발생한 것으로 판단한다.
객체 위치 설정(Object Localization)
객체 연관 이벤트가 결정되면 객체를 위치 시킨다. 구체적인 방법은 아래와 같다.
객체 등장(또는 재등장). 이전에 할당된 객체를 잘못된 객체(false object)로 처리한다. 그리고, 객체 재등장을 고려하여 객체 큐에서 버텍스에 저장된 블랍 등장 이벤트 로그에 기록된 블랍과 유사한 객체를 탐색한다. 유사한 객체가 존재하면 그 객체를 버텍스에 위치시키고, 존재하지 않을 경우에는 새로운 객체를 만들어서 버텍스에 위치 시킨다.
객체 계속. 버텍스에 저장된 최근 블랍 계속 이벤트 로그를 이용하여 객체 속성을 최근 값으로 갱신한다.
객체 병합. 이전에 할당된 객체가 있다면 이것은 잘못된 객체로 처리한다. 버텍스에 저장된 블랍 병합 이벤트 로그를 이용하여 병합에 참여한 버텍스들의 객체 집합의 합집합을 해당 버텍스의 객체 집합으로 설정한다.
객체 분리. 도 15에 도시된 바와 같이 하나의 그룹 버텍스가 다수의 자식 버텍스들로 쪼개지는 경우에 발생한다. 그룹 버텍스의 객체 집합을 자식 버텍스들의 상황에 맞게 위치시키는 것이 중요하다. 구체적으로 n개의 객체가 그룹 버텍스에 포함 되어 있고, m개의 자식 버텍스들로 쪼개지는 경우에 객체들의 자식 버텍스에 위치할 모든 경우의 수는 mn 이다. m개의 버텍스에 대해 객체를 할당하는 경우 중의 하나를 Φi = (φ12,...,φm)라 하자. 여기서, φm=(o1,...,ok) 는 Vi에 할당된 객체들의 집합이다. 이때, Φi 의 확률은 아래의 수식 11과 같이 Vi에 속한
Figure 112011104606711-pat00183
가 φi를 나타낼 확률들의 곱과 같다.
Figure 112010020633111-pat00111
Figure 112011104606711-pat00184
Figure 112011104606711-pat00185
로 근사할 수 있으며,
Figure 112011104606711-pat00186
는 수식 2를 이용하여 계산할 수 있다. 결국, 아래의 수식 12와 같이 각각의 모든 경우의 확률을 구하여 가장 큰 확률을 갖는 경우 Φi 를 선택하여 객체들을 위치 시킨다.
Figure 112010020633111-pat00116
잘못된 객체(false object)로 처리한다 함은, 연관된 상위 버텍스들의 객체 리스트에서 잘못된 객체를 제거하고 다시 등장할 가능성을 고려하여 객체들을 객체 큐에 저장하는 것을 의미한다. 도 14는 4개의 객체들을 갖는 그룹 버텍스가 두 개의 버텍스로 분리되는 과정을 도시한 도면이다.
오래된 프레임을 제거
이상적으로 프레임 큐 안에 모든 프레임을 저장해 둔다면, 믿을 수 있는 추적 결과를 얻을 수 있을 것이다. 하지만 프레임 큐의 크기가 한정적이기 때문에 프레임 큐가 가득 차면 가장 오래된 프레임(t-k)을 빼내야 한다. 먼저, 블랍추론그래프를 바탕으로 해당 t-k 프레임의 블랍의 추적 정보를 추출하고, 블랍추론그래프에서 해당 t-k 프레임에 있던 블랍 집합의 버텍스를 제거한다.
이렇게 블랍추론그래프에서 가장 오래된 프레임의 버텍스가 삭제되면, 경우에 따라 필요한 정보가 사라지기도 한다. 도 15는 이러한 문제점을 설명하기 위하여 도시한 도면으로서, 두 객체가 만나서 그룹을 이루고 천천히 떨어지게 되면 일관된 움직임을 위반하지 않아서 한 객체의 분열(fragment)로 라벨될 수 있다. 이때, 두 객체가 시간이 오래지 않아 떨어져서 그룹 버텍스 정보가 남아 있으면, 이 두 객체는 그룹으로부터의 분리 이벤트로 라벨될 것이다.
그러나, 시간이 흘러 해당 프레임이 가장 오래된 프레임이 되어 그룹 버텍스가 제거되면, 실제 이 두 객체를 나타내는 버텍스들이 분열로 잘못 라벨될 수 있다. 따라서 이런 문제를 해결하기 위해서 그룹 버텍스가 그룹에서 삭제될 때에는 남아 있는 이벤트 레코드를 확인하여 남아 있는 가장 최근의 블랍 분리 이벤트 레코드를 이용하여 강제 객체 분리 이벤트를 발생시킨다.
평가
이 발명에서 제안된 객체 추적모듈의 성능을 평가하기 위하여, 이 발명에 따른 객체 추적모듈을 공지된 데이터베이스(CAVIAR dataset)에 적용하여 테스트를 수행하였다. 도시되지 않았으나, 이 발명에 따른 객체 추적모듈을 또 다른 공지의 데이터베이스(PETS'2001)에 적용하여 테스트를 수행하여도 유사한 결과가 얻어진다.
블랍 추적 후, 2초 이상 머물러 있는 객체는 정지객체로 보고 전경에서 제거했다. 프레임 큐 크기 k는 10으로 정하였고, 특정 객체 모델 이나 씬 모델(예: entry, exit)을 가정하지 않았다.
도 16은 이 발명에 따른 객체 추적모듈을 CAVIA dataset에 적용하여 객체의 분열(fragment)을 처리하는 예를 도시한 도면으로서, 좌측 그림은 원 프레임(original frame)을 도시하고, 중앙 그림은 전경 픽셀들을 도시하며, 우측 그림은 객체 추적 결과를 도시한다. 도 16은 여성이 복도를 걷는 동안 여성의 바지와 바닥 색상이 유사하여 객체의 분열이 발생한 예이다. 이 발명에 따르면 이러한 객체의 분열을 정확히 처리하여 한 사람(객체)로 추적하고 있음을 확인할 수 있다.
도 17은 이 발명에 따른 객체 추적모듈은 CAVIA dataset에 적용하여 연속된 프레임으로부터 객체를 추적한 결과를 도시한 도면으로서, 윗줄 그림들은 원 프레임을 도시하고, 가운데 줄 그림들은 전경 픽셀들을 도시하며, 아래줄 그림들은 객체 추적 결과를 도시한다. 도 17은 두 남자가 그룹으로 등장하여 병합(merge)과 분리(split)를 반복하는 복잡한 상황을 보여준다. 이 발명에 따르면 다수의 객체가 하나의 그룹에 속해 있는 경우라도, 그룹에 속한 각 객체를 타원으로 표시하며 추적하고 있음을 확인할 수 있다.
31 : 블랍추적수단 32 : 블랍추론그래프갱신수단
33 : 블랍추론그래프라벨링수단 34 : 객체위치설정수단

Claims (20)

  1. 프레임 t-1에서 추출된 블랍 집합 Bt-1의 각 원소에 칼만 필터를 적용한 예측 블랍 집합
    Figure 112011104606711-pat00187
    와 프레임 t에서 추출된 블랍 집합 Bt 사이에서 발생하는 블랍 연관 이벤트의 종류를 추출하고 상기 추출된 블랍 연관 이벤트의 종류에 따라 블랍을 추적하는 블랍추적수단과,
    상기 프레임 t-1에서 생성된 블랍 추론 그래프를 이용하여 상기 프레임 t에서 추적된 블랍들에 대해 상기 블랍 연관 이벤트의 종류에 따라 새로운 버텍스와 유향에지를 추가하거나 삭제하여 상기 블랍 추론 그래프를 업데이트하는 블랍추론그래프갱신수단과,
    상기 블랍 추론 그래프를 구성하는 버텍스들 중 일관된 움직임을 갖는 버텍스들을 하나의 객체로 묶고 하나의 라벨을 할당하는 블랍추론그래프라벨링수단과,
    상기 블랍 추론 그래프를 구성하는 버텍스들의 라벨과 블랍 연관 이벤트의종류에 따라 객체 연관 이벤트 발생 여부를 판단하고, 객체 연관 이벤트를 기반으로 상기 버텍스에 객체를 할당하는 객체위치할당수단을 포함하며, 상기 블랍 연관 이벤트의 종류는 계속, 병합, 분리, 등장, 퇴장을 포함한 것을 특징으로 하는 실시간 다수 객체 추적시스템.
  2. 제 1 항에 있어서, 상기 블랍추적수단은 적어도 하나의 블랍에 상기 블랍 연관 이벤트 중 병합 이벤트와 분리 이벤트가 동시에 발생하면, 상기 병합 이벤트와 분리 이벤트가 발생한 모든 블랍들을 합한 새로운 블랍을 포함하는 가상 프레임을 중간에 삽입한 후 분리 이벤트를 처리하는 것을 특징으로 하는 실시간 다수 객체 추적시스템.
  3. 제 1 항에 있어서, 상기 블랍추론그래프갱신수단은 상기 블랍 추론 그래프를 구성하는 임의의 두 버텍스가 동등하면 상기 동등한 두 버텍스를 하나의 버텍스로 합하는 것을 특징으로 하는 실시간 다수 객체 추적시스템.
  4. 제 1 항에 있어서, 상기 블랍추론그래프갱신수단은 상기 블랍 추론 그래프를 구성하는 임의의 제1루트 버텍스가 임의의 제2루트 버텍스의 부분 집합이면, 상기 제2루트 버텍스로부터 제1루트 버텍스로 향하는 유향 에지를 추가하는 것을 특징으로 하는 실시간 다수 객체 추적시스템.
  5. 제 1 항에 있어서, 상기 라벨은 분할, 객체 및 그룹 중 하나인 것을 특징으로 하는 실시간 다수 객체 추적시스템.
  6. 제 5 항에 있어서, 상기 라벨을 할당하기 전 그룹 분열과 객체 가능 중 하나의 임시라벨을 할당하는 것을 특징으로 하는 실시간 다수 객체 추적시스템.
  7. 제 1 항에 있어서, 상기 블랍추론그래프라벨링수단은 상기 블랍 추론 그래프를 구성하는 버텍스들 중 일관된 움직임을 갖는 임의의 자식 버텍스를 부모 버텍스와 묶는 바텀업 처리를 수행하는 것을 특징으로 하는 실시간 다수 객체 추적시스템.
  8. 제 1 항에 있어서, 상기 블랍추론그래프라벨링수단은 상기 버텍스에 할당된 라벨의 신뢰성을 표시하는 컨피던스 플래그를 설정하는 것을 특징으로 하는 실시간 다수 객체 추적 시스템.
  9. 제 1 항에 있어서, 상기 객체위치할당수단은 상기 블랍 연관 이벤트가 발생하면 상기 이벤트가 발생된 시간, 이벤트의 종류 및 이벤트와 연관된 블랍들 정보를 포함한 블랍 연관 이벤트 레코드를 생성하고 상기 버텍스에 저장하는 것을 특징으로 하는 실시간 다수 객체 추적 시스템.
  10. 제 1 항에 있어서, 상기 객체 연관 이벤트는 객체 등장, 객체 계속, 객체 병합, 객체 분리, 객체 퇴장 중 하나인 것을 특징으로 하는 실시간 다수 객체 추적 시스템.
  11. 프레임 t-1에서 추출된 블랍 집합 Bt-1의 각 원소에 칼만 필터를 적용한 예측 블랍 집합
    Figure 112011104606711-pat00188
    와 프레임 t에서 추출된 블랍 집합 Bt 사이에서 발생하는 블랍 연관 이벤트의 종류를 추출하고 상기 추출된 블랍 연관 이벤트의 종류에 따라 블랍을 추적하는 블랍추적단계와,
    상기 프레임 t-1에서 생성된 블랍 추론 그래프를 이용하여 상기 프레임 t에서 추적된 블랍들에 대해 상기 블랍 연관 이벤트의 종류에 따라 새로운 버텍스와 유향에지를 추가하거나 삭제하여 상기 블랍 추론 그래프를 업데이트하는 블랍추론그래프갱신단계와,
    상기 블랍 추론 그래프를 구성하는 버텍스들 중 일관된 움직임을 갖는 버텍스들을 하나의 객체로 묶고 하나의 라벨을 할당하는 블랍추론그래프라벨링단계와,
    상기 블랍 추론 그래프를 구성하는 버텍스들의 라벨과 블랍 연관 이벤트의종류에 따라 객체 연관 이벤트 발생 여부를 판단하고, 객체 연관 이벤트를 기반으로 상기 버텍스에 객체를 할당하는 객체위치할당단계를 포함하며, 상기 블랍 연관 이벤트의 종류는 계속, 병합, 분리, 등장, 퇴장을 포함한 것을 특징으로 하는 실시간 다수 객체 추적방법.
  12. 제 11 항에 있어서, 상기 블랍추적단계는 적어도 하나의 블랍에 상기 블랍 연관 이벤트 중 병합 이벤트와 분리 이벤트가 동시에 발생하면, 상기 병합 이벤트와 분리 이벤트가 발생한 모든 블랍들을 합한 새로운 블랍을 포함하는 가상 프레임을 중간에 삽입한 후 분리 이벤트를 처리하는 것을 특징으로 하는 실시간 다수 객체 추적방법.
  13. 제 11 항에 있어서, 상기 블랍추론그래프갱신단계는 상기 블랍 추론 그래프를 구성하는 임의의 두 버텍스가 동등하면 상기 동등한 두 버텍스를 하나의 버텍스로 합하는 것을 특징으로 하는 실시간 다수 객체 추적방법.
  14. 제 11 항에 있어서, 상기 블랍추론그래프갱신단계는 상기 블랍 추론 그래프를 구성하는 임의의 제1루트 버텍스가 임의의 제2루트 버텍스의 부분 집합이면, 상기 제2루트 버텍스로부터 제1루트 버텍스로 향하는 유향 에지를 추가하는 것을 특징으로 하는 실시간 다수 객체 추적방법.
  15. 제 11 항에 있어서, 상기 라벨은 분할, 객체 및 그룹 중 하나인 것을 특징으로 하는 실시간 다수 객체 추적방법.
  16. 제 15 항에 있어서, 상기 라벨을 할당하기 전 그룹 분열과 객체 가능 중 하나의 임시라벨을 할당하는 것을 특징으로 하는 실시간 다수 객체 추적방법.
  17. 제 11 항에 있어서, 상기 블랍추론그래프라벨링단계는 상기 블랍 추론 그래프를 구성하는 버텍스들 중 일관된 움직임을 갖는 임의의 자식 버텍스를 부모 버텍스와 묶는 바텀업 처리를 수행하는 것을 특징으로 하는 실시간 다수 객체 추적방법.
  18. 제 11 항에 있어서, 상기 블랍추론그래프라벨링단계는 상기 버텍스에 할당된 라벨의 신뢰성을 표시하는 컨피던스 플래그를 설정하는 것을 특징으로 하는 실시간 다수 객체 추적방법.
  19. 제 11 항에 있어서, 상기 객체위치할당단계는 상기 블랍 연관 이벤트가 발생하면 상기 이벤트가 발생된 시간, 이벤트의 종류 및 이벤트와 연관된 블랍들 정보를 포함한 블랍 연관 이벤트 레코드를 생성하고 상기 버텍스에 저장하는 것을 특징으로 하는 실시간 다수 객체 추적 방법.
  20. 제 11 항에 있어서, 상기 객체 연관 이벤트는 객체 등장, 객체 계속, 객체 병합, 객체 분리, 객체 퇴장 중 하나인 것을 특징으로 하는 실시간 다수 객체 추적 방법.

KR1020100029386A 2010-03-31 2010-03-31 실시간 다수 객체 추적시스템 및 방법 KR101158729B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100029386A KR101158729B1 (ko) 2010-03-31 2010-03-31 실시간 다수 객체 추적시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100029386A KR101158729B1 (ko) 2010-03-31 2010-03-31 실시간 다수 객체 추적시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20110109596A KR20110109596A (ko) 2011-10-06
KR101158729B1 true KR101158729B1 (ko) 2012-06-22

Family

ID=45391527

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100029386A KR101158729B1 (ko) 2010-03-31 2010-03-31 실시간 다수 객체 추적시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101158729B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10310615B2 (en) 2013-10-01 2019-06-04 Samsung Electronics Co., Ltd. Apparatus and method of using events for user interface

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3004573B1 (fr) 2013-04-11 2016-10-21 Commissariat Energie Atomique Dispositif et procede de suivi 3d video d'objets d'interet
KR101406334B1 (ko) * 2013-04-18 2014-06-19 전북대학교산학협력단 신뢰도와 지연된 결정을 활용한 다중 객체 추적 시스템 및 방법
KR102499626B1 (ko) * 2016-05-31 2023-02-14 한국전자통신연구원 상호작용 이벤트 인식장치
CN110782661A (zh) * 2019-09-17 2020-02-11 浙江大学 一种基于数据驱动优化的通用混合交通仿真方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060064504A (ko) * 2004-12-08 2006-06-13 한국전자통신연구원 대상 물체 검출 시스템 및 그 방법
KR20070078451A (ko) * 2006-01-27 2007-08-01 덕성여자대학교 산학협력단 네트워크 카메라를 이용한 다중 사람추적 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060064504A (ko) * 2004-12-08 2006-06-13 한국전자통신연구원 대상 물체 검출 시스템 및 그 방법
KR20070078451A (ko) * 2006-01-27 2007-08-01 덕성여자대학교 산학협력단 네트워크 카메라를 이용한 다중 사람추적 시스템

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
논문1:한국방송공학회 *
논문2:전자공학회 논문지 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10310615B2 (en) 2013-10-01 2019-06-04 Samsung Electronics Co., Ltd. Apparatus and method of using events for user interface
US10838508B2 (en) 2013-10-01 2020-11-17 Samsung Electronics Co., Ltd. Apparatus and method of using events for user interface

Also Published As

Publication number Publication date
KR20110109596A (ko) 2011-10-06

Similar Documents

Publication Publication Date Title
Benabbas et al. Motion pattern extraction and event detection for automatic visual surveillance
Ge et al. Vision-based analysis of small groups in pedestrian crowds
US8705861B2 (en) Context processor for video analysis system
Zaki et al. Automated analysis of pedestrian group behavior in urban settings
GB2505501A (en) Crowd density estimation using semi-supervised active learning
Lin et al. Integrating graph partitioning and matching for trajectory analysis in video surveillance
Marques et al. Tracking groups of pedestrians in video sequences
Kumar et al. Object tracking and counting in a zone using YOLOv4, DeepSORT and TensorFlow
KR101158729B1 (ko) 실시간 다수 객체 추적시스템 및 방법
KR100968024B1 (ko) 감시 시스템 네트워크를 이용한 객체의 이동 경로 추적방법 및 시스템
Ferryman et al. Performance evaluation of crowd image analysis using the PETS2009 dataset
CN113628245A (zh) 多目标跟踪方法、装置、电子设备和存储介质
CN109034258A (zh) 基于特定物体像素梯度图的弱监督目标检测方法
US20230095533A1 (en) Enriched and discriminative convolutional neural network features for pedestrian re-identification and trajectory modeling
CN114926859A (zh) 一种结合头部跟踪的密集场景下行人多目标跟踪方法
Di Benedetto et al. An embedded toolset for human activity monitoring in critical environments
CN112884835A (zh) 一种基于深度学习之目标检测的视觉slam方法
Bennett et al. Enhanced tracking and recognition of moving objects by reasoning about spatio-temporal continuity
Amir Sjarif et al. Crowd analysis and its applications
Kresović et al. Bottom-up approaches for multi-person pose estimation and it's applications: A brief review
Duque et al. The OBSERVER: An intelligent and automated video surveillance system
Veit et al. Space-time a contrario clustering for detecting coherent motions
Muthunagai et al. Crowd Density Estimation Using Neural Network for COVID-19 and Future Pandemics
Abdullah et al. A survey of deep learning-based object detection: Application and open issues
Arbel et al. Inner-scene similarities as a contextual cue for object detection

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150526

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee