KR20110109596A - System and method for tracking multiple objects in real time - Google Patents

System and method for tracking multiple objects in real time Download PDF

Info

Publication number
KR20110109596A
KR20110109596A KR1020100029386A KR20100029386A KR20110109596A KR 20110109596 A KR20110109596 A KR 20110109596A KR 1020100029386 A KR1020100029386 A KR 1020100029386A KR 20100029386 A KR20100029386 A KR 20100029386A KR 20110109596 A KR20110109596 A KR 20110109596A
Authority
KR
South Korea
Prior art keywords
blob
event
vertices
inference graph
tracking
Prior art date
Application number
KR1020100029386A
Other languages
Korean (ko)
Other versions
KR101158729B1 (en
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/en
Publication of KR20110109596A publication Critical patent/KR20110109596A/en
Application granted granted Critical
Publication of KR101158729B1 publication Critical patent/KR101158729B1/en

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에서 추출된 블랍 집합

Figure pat00123
으로부터 예측된 블랍집합
Figure pat00124
와 프레임 t에서 추출된 블랍 집합
Figure pat00125
사이에서 발생하는 블랍 연관 이벤트를 추출하고 상기 추출된 블랍 연관 이벤트의 종류에 따라 블랍을 추적하는 블랍추적수단과, 상기 프레임 t-1에서 생성된 블랍 추론 그래프를 이용하여 상기 프레임 t에서 추적된 블랍들에 대해 상기 블랍 연관 이벤트의 종류에 따라 새로운 버텍스와 유향에지를 추가하거나 삭제하여 상기 블랍 추론 그래프를 업데이트하는 블랍추론그래프갱신수단과, 상기 블랍 추론 그래프를 구성하는 버텍스들 중 일관된 움직임을 갖는 버텍스들을 하나의 객체로 묶고 하나의 라벨을 할당하는 블랍추론그래프라벨링수단과, 상기 블랍 추론 그래프를 구성하는 버텍스들의 라벨과 블랍 연관 이벤트의종류에 따라 객체 연관 이벤트 발생 여부를 판단하고, 객체 연관 이벤트를 기반으로 상기 버텍스에 객체를 할당하는 객체위치할당수단을 포함한다.The present invention relates to a real-time multi-object tracking system and method for solving the problem of fragmentation of a single object and the grouping of multiple objects using a blob inference graph.
Real-time multi-object tracking system according to the present invention, the blob set extracted in the frame t-1
Figure pat00123
Blob set predicted from
Figure pat00124
Set of blobs extracted from frame t
Figure pat00125
A blob tracking means for extracting a blob association event occurring between and tracking the blobs according to the type of the blob association event extracted and the blob inference graph generated in the frame t-1, and the blobs traced in the frame t. And blob inference graph updating means for updating the blob inference graph by adding or deleting new vertices and directed edges according to the type of the blob related event, and vertices having a consistent movement among the vertices constituting the blob inference graph. Blob inference graph labeling means for grouping the data into a single object and assigning a label, and determining whether an object association event occurs according to the label of the vertices and the blob association event constituting the blob inference graph, and determining the object association event. Object location allocation to allocate objects to the vertices based on It includes stage.

Description

실시간 다수 객체 추적시스템 및 방법 {system and method for tracking multiple objects in real time}{System and method for tracking multiple objects in real time}

이 발명은 실시간 다수 객체 추적시스템 및 방법에 관한 것으로서, 보다 상세하게는 블랍 추론 그래프를 이용하여 단일 객체의 분열(fragment) 문제와 복수 객체의 그룹핑(grouping) 문제를 해결하는 실시간 다수 객체 추적시스템 및 방법에 관한 것이다.The present invention relates to a real-time multi-object tracking system and method, and more particularly to a real-time multi-object tracking system that solves the problem of fragmentation and grouping of a plurality of objects using a blob inference graph and It is about a method.

이 발명은 지능형 무인감시시스템, 영상검색시스템, 지능형 로봇 등 행동인식기술을 필요로 하는 모든 분야에 적용될 수 있다.This invention can be applied to all fields that require behavior recognition technology such as intelligent unmanned surveillance system, image retrieval system, intelligent robot.

이 발명의 출원인은 블랍(BLOB) 기반으로 여러 사람이 등장하고 사라지고 겹치기도 하는 영상으로부터 그 여러 사람을 동시에 추적하면서 동시에 인간 블랍의 모양 정보까지 추출하는 기술을 출원하였으며 특허등록(특허번호 : 제10-911121호) 되었다.Applicant of the present invention has applied for a technology of extracting the shape information of the human blob while simultaneously tracking several people from the image that many people appear, disappear and overlap based on the blob (Patent No. 10) -911121).

이 선행특허는 단일 객체(한 사람)가 단일 블랍으로 표현된다는 전제하에, 각 블랍을 5가지 상태 즉, 등장(appearing), 퇴장(disappearing), 추적(tracking continuation), 병합(merging), 분리(splitting) 상태로 구분하였으며, 각 블랍을 추적함으로써 객체를 추적하였다.This patent discloses each blob in five states, namely, appearing, disappearing, tracking continuation, merging, and splitting, provided that a single object (one person) is represented by a single blob. The object was tracked by tracing each blob.

따라서, 선행특허는 단일 객체(object)가 분열(fragmentation)되어 복수의 블랍으로 표현되거나, 복수의 객체(object)가 그룹핑(grouping)되어 단일 블랍으로 표현될 경우에는, 해당 객체를 정확하게 추적할 수 없는 문제점이 있다.Therefore, the prior patents can accurately track the object when a single object is fragmented and represented as a plurality of blobs, or when a plurality of objects are grouped and represented as a single blob. There is no problem.

이를 보다 상세하게 설명하면, 객체 추적의 전처리 단계인 전경 영상 추출(또는 배경 영상 제거) 과정을 통해 임의의 프레임 t에서 추출된 블랍들의 집합을

Figure pat00001
로 나타낸다. 이때, 임의의 블랍
Figure pat00002
는 프레임 t에서의 i번째 연결된 전경 픽셀들의 집합(a set of connected foreground pixels)으로 정의된다. 이때, 하나의 객체가 하나의 블랍으로 표현되면 용이하게 객체를 추적할 수 있을 것이다.In more detail, a set of blobs extracted at an arbitrary frame t is extracted through a foreground image extraction (or background image removal) process, which is a preprocessing step of object tracking.
Figure pat00001
Respectively. At this time, any blob
Figure pat00002
Is defined as a set of connected foreground pixels in frame t. In this case, when one object is represented by one blob, the object may be easily tracked.

그러나, 도 1에 도시된 바와 같이 두 객체가 겹쳐져서 하나의 블랍으로 표현되거나(이를 그룹핑(grouping)이라 함), 하나의 객체가 2개의 블랍으로 표현되는(이를 분열(fragmentation)이라 함) 현상이 발생한다. 하나의 객체의 분열은, 이동 객체가 나무나 벽 같은 배경에 가려지는 경우나, 이동 객체의 일부분이 배경과 흡사하여 배경으로 판단되는 경우에 발생한다.However, as shown in FIG. 1, two objects are overlapped and represented as one blob (called grouping), or one object is represented as two blobs (this is called fragmentation). This happens. Splitting of an object occurs when a moving object is covered by a background such as a tree or a wall, or when a part of the moving object is determined to be a background because it is similar to the background.

이러한 그룹핑과 분열에 따른 문제를 해결하기 위한 방법은 2가지 접근방법으로 구분된다. 첫 번째 방법은 클래스 특정 모델(class-specific models)을 이용하여 객체를 검출하는 방법으로서, Zhao 등은 "Tracking multiple humans in crowded environment", CVPR 2004, Washington DC, July, 2004 에서, 머리, 몸통, 다리를 나타내는 3개의 타원체로 걷거나 서 있는 사람을 모델링함으로써 그룹핑과 분열의 문제를 해결하는 방법을 제안한다. 그러나, 이러한 방법은 사전에 관심 객체들에 대한 모델을 만들어야 하기 때문에, 영상에 출현하는 관심 객체의 종류가 다양해지면 이들 모두를 모델링하는 것 자체가 불가능하다. 또한, 사람과 같이 다양한 형태를 갖는 객체(non-rigid object)에 대해 다양한 형태별로 모델링하기도 곤란하다.The methods for solving this grouping and division problem are divided into two approaches. The first method is to detect objects using class-specific models. Zhao et al. Described in "Tracking multiple humans in crowded environment", CVPR 2004, Washington DC, July, 2004, head, torso, We propose a method to solve the problem of grouping and division by modeling a walking or standing person with three ellipsoids representing legs. However, since this method requires the modeling of the objects of interest in advance, it is impossible to model all of them as the types of objects of interest appearing in the image vary. In addition, it is difficult to model by various shapes for non-rigid objects having various shapes such as humans.

두 번째 방법은 운동(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)을 통해 그룹핑 문제를 해결한다.The second method is to detect an object using a generic object model based on motion information. As a representative example, a paper suggested by Choi et al. "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, and Gabriel et al., "The State of the Art in Multiple Object Tracking Under Occlusion in Video Sequences", Advanced Concepts for Intelligent Vision Systems, pp. 166-173, 2003. In the above paper, the fragmentation problem is solved by using morphology operations or by grouping close blobs within a certain distance into one blob again. Then, one blob is modeled as including at least one object to solve grouping problem through blob tracking.

이에 Bose 등은 "Multi-class object tracking algorithm that handles fragmentation and grouping", CVPR 2007, June, 2007 에서, 각 블랍들의 공간적 집약성(spatial locality)과 일관된 움직임(coherent motion)을 바탕으로 일반적 객체 모델을 제안하여 객체의 분열과 그룹핑 문제를 동시에 해결하였다.Bose et al. Proposed a general object model based on spatial locality and coherent motion of each blob in "Multi-class object tracking algorithm that handles fragmentation and grouping", CVPR 2007, June, 2007. This solves the problem of object division and grouping.

그러나, 이 Bose 등이 제안한 방법은, 일괄로 처리되고 이전에 추론된 정보를 이용하지 않기 때문에 비효율적이며 정확한 객체 추적이 이루어지지 않는 문제점이 있다.However, the method proposed by Bose et al. Has a problem of inefficient and accurate object tracking because it is processed in a batch and does not use previously inferred information.

상술한 종래기술의 문제점을 해결하기 위하여 안출된 이 발명의 목적은, Bose 등이 제안한 방법을 변형함으로써 효율적이고 정확한 실시간 복수 객체 추적 시스템 및 방법을 제안하기 위한 것이다.An object of the present invention devised to solve the problems of the prior art described above is to propose an efficient and accurate real-time multi-object tracking system and method by modifying the method proposed by Bose et al.

상기한 목적을 달성하기 위한 이 발명에 따른 실시간 다수 객체 추적시스템은, 프레임 t-1에서 추출된 블랍 집합 으로부터 예측된 블랍집합

Figure pat00004
와 프레임 t에서 추출된 블랍 집합
Figure pat00005
사이에서 발생하는 블랍 연관 이벤트를 추출하고 상기 추출된 블랍 연관 이벤트의 종류에 따라 블랍을 추적하는 블랍추적수단과,Real-time multi-object tracking system according to the present invention for achieving the above object, the blob set extracted in the frame t-1 Blob set predicted from
Figure pat00004
Set of blobs extracted from frame t
Figure pat00005
Blob tracking means for extracting a blob association event occurring between and tracking the blobs according to the type of the blob association event extracted,

상기 프레임 t-1에서 생성된 블랍 추론 그래프를 이용하여 상기 프레임 t에서 추적된 블랍들에 대해 상기 블랍 연관 이벤트의 종류에 따라 새로운 버텍스와 유향에지를 추가하거나 삭제하여 상기 블랍 추론 그래프를 업데이트하는 블랍추론그래프갱신수단과,A blob for updating the blob inference graph by adding or deleting new vertices and directed edges according to the type of the blob related event for the blobs tracked in the frame t using the blob inference graph generated in the frame t-1. Inference graph updating means,

상기 블랍 추론 그래프를 구성하는 버텍스들 중 일관된 움직임을 갖는 버텍스들을 하나의 객체로 묶고 하나의 라벨을 할당하는 블랍추론그래프라벨링수단과,Blob inference graph labeling means for grouping the vertices having a consistent movement among the vertices constituting the blob inference graph into a single object and assigns a label;

상기 블랍 추론 그래프를 구성하는 버텍스들의 라벨과 블랍 연관 이벤트의종류에 따라 객체 연관 이벤트 발생 여부를 판단하고, 객체 연관 이벤트를 기반으로 상기 버텍스에 객체를 할당하는 객체위치할당수단을 포함한 것을 특징으로 한다.And determining an object association event according to the label of the vertices constituting the blob inference graph and the type of the blob association event, and including an object position allocating means for allocating an object to the vertex based on the object association event. .

또한, 이 발명에 따른 실시간 다수 객체 추적방법은, 프레임 t-1에서 추출된 블랍 집합

Figure pat00006
으로부터 예측된 블랍집합
Figure pat00007
와 프레임 t에서 추출된 블랍 집합
Figure pat00008
사이에서 발생하는 블랍 연관 이벤트를 추출하고 상기 추출된 블랍 연관 이벤트의 종류에 따라 블랍을 추적하는 블랍추적단계와,In addition, the real-time multi-object tracking method according to the present invention, the blob set extracted in the frame t-1
Figure pat00006
Blob set predicted from
Figure pat00007
Set of blobs extracted from frame t
Figure pat00008
A blob tracking step of extracting blob association events occurring between and tracking the blobs according to the extracted blob association events;

상기 프레임 t-1에서 생성된 블랍 추론 그래프를 이용하여 상기 프레임 t에서 추적된 블랍들에 대해 상기 블랍 연관 이벤트의 종류에 따라 새로운 버텍스와 유향에지를 추가하거나 삭제하여 상기 블랍 추론 그래프를 업데이트하는 블랍추론그래프갱신단계와,A blob for updating the blob inference graph by adding or deleting new vertices and directed edges according to the type of the blob related event for the blobs tracked in the frame t using the blob inference graph generated in the frame t-1. Inference graph update phase,

상기 블랍 추론 그래프를 구성하는 버텍스들 중 일관된 움직임을 갖는 버텍스들을 하나의 객체로 묶고 하나의 라벨을 할당하는 블랍추론그래프라벨링단계와,A blob inference graph labeling step of grouping vertices having a consistent movement among the vertices constituting the blob inference graph into one object and allocating one label;

상기 블랍 추론 그래프를 구성하는 버텍스들의 라벨과 블랍 연관 이벤트의종류에 따라 객체 연관 이벤트 발생 여부를 판단하고, 객체 연관 이벤트를 기반으로 상기 버텍스에 객체를 할당하는 객체위치할당단계를 포함한 것을 특징으로 한다.And determining an object association event according to the label of the vertices and the blob association event of the blob inference graph, and assigning an object position to the vertex based on the object association event. .

이상과 같이 이 발명에 따르면 객체가 분할되거나 그룹화되는 경우 이를 객체의 병합이나 분리와 구분하여 추적할 수 있기 때문에, 실시간으로 다수의 객체를 정확하게 추적할 수 있다. 이 발명은 지능형 무인감시시스템, 영상검색, 지능형 로봇 등 객체 추적기술을 필요로 하는 모든 분야에 사용할 수 있다.As described above, according to the present invention, when an object is divided or grouped, the object can be tracked separately from the merging or separating of the object, so that a plurality of objects can be accurately tracked in real time. This invention can be used in all fields requiring object tracking technology such as intelligent unmanned surveillance system, image search, and intelligent robot.

도 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에 적용하여 연속된 프레임으로부터 객체를 추적한 결과를 도시한 도면이다.
FIG. 1 is a diagram illustrating a phenomenon in which two objects are overlapped and represented as one blob (called grouping), or one object is represented as two blobs (this is called fragmentation).
FIG. 2 is a diagram illustrating a case in which one moving object is divided into a plurality of blobs due to fragmentation in the image (a), and a case in which a plurality of moving objects are represented by one blob (b).
3 is a functional block diagram illustrating a real-time multi-object tracking system according to one embodiment of the invention.
4 shows five types of blob association events (a) and blob association matrices (b).
5 is a diagram illustrating a process when a merge event and a detach event occur at the same time.
6 is a diagram illustrating an example of a frame in which merging and splitting occur simultaneously.
7 shows a blob inference graph.
8 shows a sequence of extracted blobs and a blob inference graph made therefrom.
FIG. 9 is a diagram illustrating a process of adding a frankincense edge when a cleavage occurs while a person walks.
10 is a diagram for explaining a consistent movement.
11 is a diagram illustrating a state in which a unique identifier is assigned.
FIG. 12 illustrates a state in which previous tracking information disappears when two objects are merged into one and then remain merged for a time longer than the size of the frame queue.
FIG. 13 is a diagram illustrating an example in which a blob related event log is required.
14 is a diagram illustrating a process of separating a group vertex having four objects into two child vertices.
FIG. 15 is a diagram for explaining a problem that necessary information disappears because the vertex of the oldest frame is deleted in the blob inference graph.
16 illustrates an example of processing an object fragment by applying an object tracking module according to the present invention to a CAVIA dataset.
FIG. 17 is a diagram illustrating a result of tracking an object from a continuous frame by applying the object tracking module according to the present invention.

이하, 첨부된 도면을 참조하며 이 발명의 한 실시예에 따른 실시간 다수 객체 추적시스템 및 방법을 보다 상세하게 설명하면 다음과 같다.Hereinafter, with reference to the accompanying drawings will be described in more detail the real-time multi-object tracking system and method according to an embodiment of the present invention.

이 발명의 실시예를 설명하기에 앞서 이 발명의 명세서에서 사용하는 블랍과 객체의 의미를 정의한다.Before describing an embodiment of the present invention, the meanings of the blobs and the objects used in the specification of the present invention are defined.

블랍(blob)Blob

하나의 블랍

Figure pat00009
는 프레임 t에서의 i번째 연결된 전경 픽셀들의 집합(a set of connected foreground pixels)으로 정의되며, 상태 벡터(state vector)
Figure pat00010
를 갖는다. 이때,
Figure pat00011
는 중심 위치(centroid position)이고,
Figure pat00012
는 중심 속도(centroid velocity)이다. 또한, 하나의 블랍은 하나의 객체, 분열된 객체의 조각, 둘 이상 객체의 그룹으로 나타낼 수 있다. 각 블랍의 중심 위치와 중심 속도를 예측하기 위해 수식 1에 기재된 정속도(constant velocity)를 갖는 모델을 사용한다.Single blob
Figure pat00009
Is defined as a set of connected foreground pixels in frame t, the state vector
Figure pat00010
Has At this time,
Figure pat00011
Is the centroid position,
Figure pat00012
Is the centroid velocity. In addition, one blob may be represented by one object, a fragment of a divided object, or a group of two or more objects. A model with constant velocity as described in Equation 1 is used to predict the center position and the center velocity of each blob.

Figure pat00013
Figure pat00013

여기서,

Figure pat00015
는 위치와 속도이고,
Figure pat00016
는 관찰된 위치이다. 또한,
Figure pat00017
는 처리 잡음(process noise)이고,
Figure pat00018
는 관찰 잡음(observation noise)이며,
Figure pat00019
는 마지막 갱신 이후 시간 간격(time interval)이다. 매 프레임마다 칼만 필터(Kalman filter)를 이용하여 블랍의 위치를 예측하고, 수식 1의 모델을 이용하여 최적의 위치를 얻으며 필터 파라메터를 갱신한다.here,
Figure pat00015
Is the position and velocity,
Figure pat00016
Is the observed position. Also,
Figure pat00017
Is the process noise,
Figure pat00018
Is observation noise,
Figure pat00019
Is the time interval since the last update. The Kalman filter is used to predict the position of the blob every frame, the model of Equation 1 is used to obtain the optimal position, and the filter parameters are updated.

객체(object)Object

영상 내에서 하나의 이동 객체는 도 2에 도시된 바와 같이 단일 블랍으로 표현되기도 하지만, 도 2의 (a)에 도시된 바와 같이 분열 때문에 여러 개의 블랍들로 쪼개져 표현되기도 한다. 이때, 하나의 객체가 분열된 조각 블랍들은 거의 동일하게 움직인다. 반면에 다수의 이동 객체들은 도 2의 (b)에 도시된 바와 같이 하나의 블랍으로 표현되기도 하는데, 이때 두 객체를 표현한 하나의 블랍이 쪼개지더라도 쪼개진 두 블랍들의 속도는 연관성이 없다. 이러한 관찰을 토대로 Bose 등이 일반적 객체 모델(generic object model)을 제안하였다.One moving object in the image may be represented as a single blob as shown in FIG. 2, but may be divided into several blobs due to fragmentation as shown in FIG. 2A. At this time, fragment blobs in which an object is divided are moved almost identically. On the other hand, a plurality of moving objects may be represented by one blob as shown in (b) of FIG. 2, where the speeds of the two split blobs are not related even if one blob representing the two objects is split. Based on these observations, Bose et al. Proposed a generic object model.

Bose 등은 하나의 객체를 공간적 연결성(spatial connectedness)와 일관된 움직임(coherent motion)의 특성을 만족시키는 블랍들의 최대 집합(a maximal set of blobs)으로 모델링한다. 여기서, 공간적 연결성이란 고려대상인 블랍들이 블랍 추적 과정 중에 하나의 대표 블랍을 구성하였거나 대표 블랍으로부터 파생되었음을 의미한다. 또한, 일관된 움직임이란 고려대상인 블랍들이 상당한 기간동안 동일하게 움직이는 것을 말한다. 이러한 일반적 객체 모델을 사용하면 알려지지 않는 객체도 쉽게 추적할 수 있으며, 궁극적으로 이 발명에 따른 프레임워크의 응용범위를 확장할 수 있게 된다.Bose et al. Model an object as a maximal set of blobs that satisfies the characteristics of spatial connectedness and coherent motion. Here, spatial connectivity means that the blobs under consideration constituted or derived from one representative blob during the blob tracking process. Also, consistent motion means that the blobs under consideration move equally over a significant period of time. This general object model makes it easy to track unknown objects and ultimately extends the application of the framework according to the invention.

이 발명은 상술한 Bose 등이 제안한 일반적 객체 모델(generic object model)을 변경하여 그 효율을 높이기 위한 것인 바, 이 발명에서는 추가적으로 객체의 특성을 모델에 추가하여 하나의 상태 벡터(state vector)로 나타낸다. 이 발명에서 사용하는 객체의 상태 벡터는 수식 2와 같다.The present invention is to improve the efficiency by changing the generic object model proposed by the above-mentioned Bose et al. In the present invention, additionally, by adding a property of the object to the model as a state vector (state vector) Indicates. The state vector of the object used in the present invention is shown in Equation 2.

Figure pat00020
Figure pat00020

여기서,

Figure pat00021
Figure pat00022
를 가우시안 N
Figure pat00023
로 모델링했을 때 얻어지는 공분산행렬(covariance matrix)이며, x-y 평면 상에서
Figure pat00024
를 구성하는 픽셀들의 대략적인 분포를 나타낸다. 이 정보는 단일 객체로 추적되는 동안 계속 갱신된다. 또한,
Figure pat00025
Figure pat00026
s(
Figure pat00027
)를 수식 3과 같이 정의하고, 이를 통해 그룹을 구성한 객체들이 나누어질 때 객체들의 정확한 추적이 가능해 진다.here,
Figure pat00021
Is
Figure pat00022
Gaussian N
Figure pat00023
The covariance matrix obtained when modeling with, on the xy plane
Figure pat00024
It shows an approximate distribution of the pixels constituting. This information is updated continuously while being tracked as a single object. Also,
Figure pat00025
Figure pat00026
s (
Figure pat00027
) Is defined as in Equation 3, and this enables accurate tracking of objects when the grouping objects are divided.

Figure pat00028
Figure pat00028

여기서,

Figure pat00029
이다.here,
Figure pat00029
to be.

Figure pat00030
바타차리야 거리(bhattacharyya distance)이며,
Figure pat00031
는 모양들 사이의 표준화된 크기 차이이고,
Figure pat00032
는 중심 위치 사이의 표준화된 유클리드 거리(Euclidean distance)이다.
Figure pat00030
Bhattacharyya distance,
Figure pat00031
Is the standardized size difference between shapes,
Figure pat00032
Is the normalized Euclidean distance between the center positions.

도 3은 이 발명의 한 실시예에 따른 실시간 다수 객체 추적시스템을 도시한 기능 블록도이다.3 is a functional block diagram illustrating a real-time multi-object tracking system according to one embodiment of the invention.

이 발명에 따른 실시간 다수 객체 추적시스템의 앞 단에는 도시되지 않은 전처리 시스템이 장착되며, 이 전처리 시스템이 카메라로부터 촬영한 영상으로부터 블랍들을 추출하여 이 발명의 실시간 다수 객체 추적시스템에 그 블랍 정보들을 제공한다.A preprocessing system (not shown) is mounted at the front of the real-time multi-object tracking system according to the present invention, and the pre-processing system extracts blobs from an image taken from a camera and provides the blob information to the real-time multi-object tracking system of the present invention. do.

이 발명에 따른 실시간 다수 객체 추적시스템은 블랍추적(blob tracking)수단(31)과, 블랍추론그래프갱신(blob inference graph updating)수단(32)과, 블랍추론그래프라벨링(blob inference graph labeling)수단(33)과, 객체위치설정(object localizing)수단(34)을 포함하여 이루어진다.
The real-time multi-object tracking system according to the present invention includes blob tracking means 31, blob inference graph updating means 32, and blob inference graph labeling means ( 33 and object localizing means 34.

블랍추적수단(Blob Tracking)(31)Blob Tracking (31)

블랍추적은 객체 추적에 가장 기본적이면서 중요한 정보로 제공된다. 블랍추적 정보는 공간적 연결성(spatial connectedness)와 일관된 움직임(coherent motion)을 파악하기 위한 추론 그래프 생성에 사용된다.Blob tracing provides the most basic and important information for tracking an object. The blob tracking information is used to generate inference graphs to identify spatial connectedness and coherent motion.

블랍추적수단(31)의 블랍추적과정을 설명한다.The blob tracking process of the blob tracking means 31 will be described.

연이은 두 개의 프레임에서 추출된 블랍 집합

Figure pat00033
Figure pat00034
을 입력받고, 블랍 집합
Figure pat00035
에 칼만 필터(Kalman filter)를 적용하여 예측 블랍집합
Figure pat00036
을 생성하고, 예측 블랍집합
Figure pat00037
과 입력 블랍집합
Figure pat00038
사이에서 발생하는 블랍 연관 이벤트(blob association events)를 추출하여, 블랍을 추적한다.A set of blobs extracted from two consecutive frames
Figure pat00033
Wow
Figure pat00034
Input, blob set
Figure pat00035
Predictive blob set by applying Kalman filter to
Figure pat00036
And predicted blob set
Figure pat00037
And input blob set
Figure pat00038
Trace blobs by extracting blob association events that occur between them.

이때, 블랍 연관 이벤트에는 블랍의 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 프레임에서 사라진 경우이다.In this case, the blob association event includes five states of the blob, that is, continue, merge, split, appear, and disappear states as shown in FIG. 4 (a). do. Continue is when the same blob is continuously present in the t-1 frame and the t frame, and merge is when two blobs in the t-1 frame are bundled together in the t frame. ) Is the case where one blob present in frame t-1 is divided into two in t frame, and the appearance is when a blob that does not exist in frame t-1 newly appears in frame t, and the disappear is The blobs that existed in frame t-1 disappear from frame t.

Huang 과 Essa는 "Tracking Multiple Objects Through Occlusions", CVRP 2005, San Diego, CA, Jun, 2005 에서, 이러한 블랍 연관 이벤트들은 블랍들간의 연관 관계를 나타내는 연관 행렬로 유추할 수 있다고 제안하였는 바, 이 발명에서는 먼저 연관 행렬을 구한 후 블랍 연관 이벤트들을 추출한다.Huang and Essa, in "Tracking Multiple Objects Through Occlusions", CVRP 2005, San Diego, CA, Jun, 2005, proposed that these blob association events can be inferred as association matrices representing associations between blobs. First obtains the association matrix and then extracts the blob association events.

먼저, 연관 행렬을 결정하는 방법을 설명하면, 픽셀 수준에서 예측 블랍집합

Figure pat00039
에 해당하는 영역과 입력 블랍집합
Figure pat00040
에 해당하는 영역을 교차시켜서 연속된 두 프레임에서 추출된 블랍 집합
Figure pat00041
Figure pat00042
의 연관 행렬 M을 만든다. M을 구성하는 원소값은 아래의 수식 4와 같이 결정된다.First, the method of determining the associative matrix will be explained.
Figure pat00039
Input blob and region corresponding to
Figure pat00040
A set of blobs extracted from two consecutive frames by intersecting the areas corresponding to
Figure pat00041
Wow
Figure pat00042
Create an associative matrix M of. The element value constituting M is determined as shown in Equation 4 below.

Figure pat00043
Figure pat00043

즉, 영역을 교차시킨 결과,

Figure pat00044
Figure pat00045
사이에 상당량의 겹쳐진 영역이 존재하면, 도 5의 (b)에 도시된 바와 같이 M[i,j]=1로 갱신하고, 그렇지 않은 경우에는 M[i,j]=0 으로 설정한다.That is, as a result of crossing the regions,
Figure pat00044
Wow
Figure pat00045
If there is a considerable amount of overlapping region between them, as shown in Fig. 5B, M [i, j] = 1 is updated, otherwise M [i, j] = 0 is set.

상술한 바와 같이 연관 행렬 M이 결정되면, 이를 이용하여 블랍 연관 이벤트들을 유추한다. 블랍 연관 이벤트들의 각 상태를 결정하는 방법은 아래의 수식 5와 같다.When the association matrix M is determined as described above, it is used to infer the blob association events. A method of determining each state of the blob related events is shown in Equation 5 below.

Figure pat00046
Figure pat00046

여기서, 병합과 분리가 동시에 발생한 경우에는, 도 5의 (a)에 도시된 바와 같이 병합과 분리를 동시에 처리하는 것이 아니라, 도 5의 (b)에 도시된 바와 같이 병합을 먼저 처리한 후 분리를 처리한다.Here, when merging and separation occur at the same time, the merging and separation are not simultaneously processed as shown in FIG. 5 (a), but the merging is first processed as shown in FIG. 5 (b) and then separated. To process

프레임에서 병합과 분리가 동시에 발생한지 여부를 찾는 방법은, 연관 행렬 M 에서,

Figure pat00047
를 만족하는 k와
Figure pat00048
를 만족하는 l을 갖는
Figure pat00049
이 있는지 확인하는 것이다. 이러한,
Figure pat00050
가 존재하면, 도 5의 (b)에 도시된 바와 같이
Figure pat00051
대신
Figure pat00052
(병합과 분리가 발생한 모든 블랍들을 합한 새로운 블랍)을 포함하는 가상 프레임(virtual frame)을 중간에 삽입한다. 도 6은 병합과 분리가 동시에 발생한 프레임의 일 예를 도시한 도면이다.The method of finding whether or not merge and separation occur at the same time in a frame is
Figure pat00047
K satisfying
Figure pat00048
Having l satisfying
Figure pat00049
Is to see if this exists. Such,
Figure pat00050
If is present, as shown in Fig. 5 (b)
Figure pat00051
instead
Figure pat00052
Insert a virtual frame that contains (a new blob that combines all the blobs that have merged and separated). 6 is a diagram illustrating an example of a frame in which merging and splitting occur simultaneously.

t-1 프레임에서 추출된 블랍 집합

Figure pat00053
와 t 프레임에서 추출된 블랍 집합
Figure pat00054
사이의 연관성이 결정되면, 블랍 집합
Figure pat00055
에 속한 블랍들의 속도를 설정한다. 이때, 등장 상태의 블랍의 속도는 0으로 설정하고, 계속 상태의 블랍의 속도는 t-1 프레임의 연관 블랍의 속도로 설정하고, 병합 상태의 블랍의 속도는 t-1 프레임의 연관 블랍들의 평균 속도로 설정하고, 분리 상태의 블랍들의 속도는 t-1 프레임의 연관 블랍의 속도로 설정한다.
Blob set extracted from t-1 frames
Figure pat00053
Set of blobs extracted from frames
Figure pat00054
Once the association between is determined, the blob set
Figure pat00055
Sets the speed of blobs belonging to. At this time, the blob speed of the appearance state is set to 0, the blob speed of the continuous state is set to the speed of the associative blob of t-1 frames, and the blob speed of the merged state is the average of the associative blobs of t-1 frames. The speed is set, and the speed of the separated blobs is set to the speed of the associated blob of the t-1 frame.

블랍추론그래프갱신수단(Blob Inference Graph Updating)(32)Blob Inference Graph Updating (32)

상술한 바와 같이 블랍추적수단(31)이 연속된 프레임에서 추출된 블랍들을 추적하면, 블랍추론그래프갱신수단(32)은 이를 도 7에 도시된 바와 같은 블랍 추론 그래프로 표현한다.As described above, when the blob tracking means 31 tracks the blobs extracted from the continuous frames, the blob reasoning graph updating means 32 expresses the blob inference graph as shown in FIG.

종래의 그래프를 생성하는 간단한 방법은, 하나의 블랍을 하나의 버텍스(vertex)에 연결하고, 블랍 연관 이벤트의 종류(등장, 퇴장, 계속, 병합, 분리)에 따라 에지(edge)를 생성한다. 그러나, 이렇게 간단하게 생성된 그래프로는 블랍들간의 공간적 연결관계의 체계(hierarchy)를 표현하기 어렵기 때문에 하나의 객체의 조각 블랍들도 각각 다른 버텍스에 연결된다.A simple method of generating a conventional graph connects one blob to one vertex and creates edges according to the type of blob association event (list, exit, continue, merge, split). However, with this simple graph, it is difficult to express a hierarchy of spatial connections between blobs, so fragment blobs of one object are also connected to different vertices.

이 발명에서는 이러한 문제를 개선하기 위하여 Bose 등이 상술한 논문에서 제안한 목표 설정 추론그래프 개념을 적용하여 도 7에 도시된 바와 같은 블랍추론그래프 g를 생성한다. 이 블랍추론그래프는 동등한 블랍들은 동일한 버텍스에 연결되고, 병합과 분리 이벤트가 발생하면 유향 에지(directed edge)를 이용하여 체계(hierarchy)를 표현한다.In the present invention, in order to improve this problem, Bose et al. Generate the blob inference graph g as shown in FIG. In this blob inference graph, equivalent blobs are connected to the same vertices, and when a merge or split event occurs, a directed edge is used to represent the hierarchy.

이때, Bose 등은 매 프레임마다 목표 설정 추론그래프를 새롭게 만들지만, 이 발명에서는 하나의 블랍추론그래프를 유지하며 갱신하기 때문에 이 블랍추론그래프에 기반한 객체 추적이 가능해진다. At this time, Bose and the like make a new target inference graph every frame, but in the present invention, since one blob inference graph is maintained and updated, object tracking based on this blob inference graph becomes possible.

또한, Bose 등은 병합과 분리 이벤트 발생 전후에 객체의 영역이 변하지 않는다고 가정한다. 따라서, 두 개의 버텍스들의 등가성(equivalence)을 나타내기 위해 영역의 결합을 사용했다. 하지만 이러한 가정은 도 8의 (a)에 도시된 바와 같이 객체 모양이 변하면 성립하지 않는다.In addition, Bose assumes that the area of the object does not change before or after the merge and detach event occurs. Thus, we used a combination of regions to represent the equivalence of two vertices. However, this assumption does not hold when the object shape changes as shown in FIG.

이러한 문제를 해결하기 위해, 이 발명에서는 버텍스 등가성을 버텍스 레벨(vertex level)에서 구체화함으로써, 보다 정확한 객체 추적이 가능해 지도록 한다.In order to solve this problem, in the present invention, by specifying the vertex equivalence at the vertex level, more accurate object tracking is possible.

블랍추론그래프 g 에 속한 임의의 버텍스

Figure pat00056
는 하나 이상의 버텍스 단위 집합(Vertex Units Set, VUS)으로 표현된다. 여기서, 버텍스 단위(Vertex Unit, VU)는 버텍스의 최소 단위로서 g의 리프노드(leaf node)에 위치한 버텍스가 해당된다. VUS를 통해서 두 개의 버텍스를 비교할 수 있다. Any vertex belonging to the blob inference graph g
Figure pat00056
Is represented by one or more Vertex Units Set (VUS). Here, the vertex unit (VU) corresponds to the vertex located at the leaf node of g as the minimum unit of the vertex. VUS allows you to compare two vertices.

Figure pat00057
는 상태 벡터
Figure pat00058
로 나타낸다. 여기서,
Figure pat00059
는 연관된 블랍의 집합이고,
Figure pat00060
는 버텍스 단위 집합들의 모음(collection)이고,
Figure pat00061
는 라벨이고,
Figure pat00062
는 객체의 집합이고,
Figure pat00063
는 컨피던스 플래그(confidence flag)이다.
Figure pat00057
State vector
Figure pat00058
Respectively. here,
Figure pat00059
Is the set of associated blobs,
Figure pat00060
Is a collection of vertex unit sets,
Figure pat00061
Is a label,
Figure pat00062
Is a collection of objects,
Figure pat00063
Is a confidence flag.

블랍 연관 이벤트가 결정되면, 그 종류에 따라 아래의 수식 6과 같이 블랍추론그래프 g를 갱신한다. 여기서,

Figure pat00064
Figure pat00065
가 속한 버텍스를 의미한다.When the blob association event is determined, the blob inference graph g is updated as shown in Equation 6 below according to the type. here,
Figure pat00064
Is
Figure pat00065
Means the vertex to which it belongs.

Figure pat00066
Figure pat00066

위의 수식 6을 풀어서 설명하면, 등장(appear) 상태의 블랍에 대해서는 그 블랍이 속한 새로운 버텍스를 추가하고(

Figure pat00067
추가), 계속(continue) 상태의 블랍에 대해서는 이전 프레임에서 연관 블랍이 속한 버텍스를 유지한다(
Figure pat00068
=
Figure pat00069
). 병합(merge) 상태의 블랍에 대해서는 새로운 버텍스
Figure pat00070
와 유향 에지를 추가하는데, 이 유향 에지의 꼬리가
Figure pat00071
이고 머리가
Figure pat00072
과 연관된 이전 프레임에서의 블랍이 속한 버텍스들
Figure pat00073
이 되도록 한다. 한편, 분리(split) 상태의 블랍에 대해서는 이전 프레임의 블랍과 연관된 새로운 버텍스들
Figure pat00074
을 추가하고 그
Figure pat00075
Figure pat00076
를 연결하는 유향 에지를 추가한다.If you solve equation 6 above, for the blob in the appearance state, add a new vertex to which the blob belongs (
Figure pat00067
In addition, for continue blobs, keep the vertices to which the associative blob belongs in the previous frame (
Figure pat00068
=
Figure pat00069
). New vertices for merged blobs
Figure pat00070
And the directing edge, the tail of this directing edge
Figure pat00071
And head
Figure pat00072
Vertices to which the blob from the previous frame associated with
Figure pat00073
To be On the other hand, for split blobs, the new vertices associated with the blob of the previous frame.
Figure pat00074
Add that and that
Figure pat00075
Wow
Figure pat00076
Add a directed edge to connect it.

이렇게 블랍추론그래프(g)를 갱신한 후, 공간적 연결성(spatial relations)의 체계(hierarchy)를 명확히 하기 위하여 다음 특징을 만족하도록 블랍추론그래프(g)를 수정한다. 임의의 두 버텍스가 동등하다면, 그 두 버텍스의 트랙(track)은 같은 버텍스에 연결되어야 한다. vj 가 vi 의 부분집합(subset)이면, vj는 vi의 자식(descendant)이다. 버텍스 동등 관계(Vertex equivalence relation)와 부분집합 관계(subset relation)를 아래의 수식 7과 같이 정의한다.After updating the blob inference graph g, the blob inference graph g is modified to satisfy the following characteristics in order to clarify the hierarchy of spatial relations. If any two vertices are equivalent, the tracks of those two vertices must be connected to the same vertex. v if v j is set (subset) of the part i, v j is a child (descendant) of the v i. The vertex equivalence relation and the subset relation are defined as shown in Equation 7 below.

Figure pat00077
Figure pat00077

블랍추론그래프(g)를 수정하기 위한 특징은 다음과 같다.The features for modifying the blob inference graph (g) are as follows.

첫째, 모든 버텍스(vertex)들을 쌍을 잡아서 두 버텍스가 동등한지 확인하고 동등할 경우, 두 버텍스를 합쳐서 하나의 버텍스로 만든다. 예를 들어, 도 8의 (a)는 추출된 블랍들의 시퀀스이고, 도 8의 (b)는 도 8의 (a)로부터 만들어진 블랍 추론 그래프를

Figure pat00078
와 함께 도시한다. 이 예에서 v3 과 v6 은 모두
Figure pat00079
를 갖고 있기 때문에 동등하다. 즉,
Figure pat00080
Figure pat00081
로 분열되고, 다시
Figure pat00082
으로 그룹핑되기 때문에 v3 과 v6 은 동등하며 따라서, 이들 버텍스들을 도 8의 (c)에 도시된 바와 같이 하나의 버텍스 v3 로 합친다. 도 8의 (d)를 참조하면, 도 8의 (a)에 비해 상황을 보다 정확하게 나타내고 있음을 알 수 있다.First, pair all the vertices to make sure that the two vertices are equal, and if they are equal, combine the two vertices into a single vertex. For example, FIG. 8A is a sequence of extracted blobs, and FIG. 8B is a blob inference graph made from FIG. 8A.
Figure pat00078
Shown with. In this example, both v 3 and v 6 are
Figure pat00079
It is equivalent because it has. In other words,
Figure pat00080
end
Figure pat00081
Split into, and again
Figure pat00082
V 3 and v 6 are equivalent since they are grouped by, thus merging these vertices into one vertex v 3 as shown in FIG. Referring to FIG. 8D, it can be seen that the situation is represented more accurately than FIG. 8A.

둘째, 루트 버텍스(root vertex)의 모든 쌍에 대해서, 임의의 한 루트 버텍스 vj 가 다른 버텍스 vi 의 부분집합인지를 확인한다. 만약 그렇다면 vi 로부터 vj 로 향하는 에지를 추가한다. 예를 들어 설명하면, 도 9의 (a)에 도시된 바와 같이 사람이 걷는 동안 분열이 발생할 경우, v5 는 v1 의 부분집합이기 때문에 v1 로부터 v5 로 향하는 에지를 추가한다. 이 경우, v1 는 몸 전체를 나타내고, v5 는 몸의 일부를 나타낸다. 따라서,도 9의 (b)에 도시된 바와 같이 v1 로부터 v5 로 향하는 에지는 공간적 연결성을 정확하게 나타내게 된다.
Second, for every pair of root vertices, we check that any root vertex v j is a subset of the other vertices v i . If so, add the edge from v i to v j . For example, if the division result for a person walking, as shown in the example will be described, Figure 9 (a), v 5 adds an edge destined to v 5 from v 1 because it is part of a set of v 1. In this case, v 1 represents the whole body and v 5 represents a part of the body. Thus, as shown in (b) of FIG. 9, the edges from v 1 to v 5 accurately represent spatial connectivity.

블랍추론그래프라벨링수단(33)Blob Inference Graph Labeling Means (33)

블랍추론그래프 g 에 있는 각각의 버텍스는 연관된 블랍들을 대표하며, 그 상태에 따라 분열(F), 객체(O), 그룹(G)으로 분류될 수 있다. 블랍추론그래프 라벨링수단(33)은 동일 객체에 속하는 버텍스들을 하나로 묶고, 해당 버텍스에 레벨을 할당한다. 이를 위해 일관된 움직임(coherent motion) 제약을 강요한다. 다시 말해 묶여진 버텍스들이 일관된 움직임을 위반할 때까지 자식 버텍스를 부모 버텍스에 묶는데, 이를 바텀업 그래프 알고리즘(bottom-up graph algorithm)이라 한다.Each vertex in the blob inference graph g represents the associated blobs and can be classified into fragments (F), objects (O), and groups (G) according to their state. The blob inference graph labeling means 33 binds vertices belonging to the same object into one and assigns a level to the vertices. To this end, coherent motion constraints are imposed. In other words, it binds the child vertices to the parent vertices until the bound vertices violate their consistent movement, which is called the bottom-up graph algorithm.

일관된 움직임(Coherent motion) 제약은 하나의 객체로부터 파생된 임의의 2개의 버텍스는 매 프레임별로 얻어진 블랍들을 시간 순으로 정렬할 경우, 동일 프레임에 존재하는 블랍 쌍에 대해서 속도차(velocity difference)들의 평균을 구한 값

Figure pat00083
의 평균이 0이고, 그 분산이 작은 가우시안 분포를 따른다. 반면에 다른 객체들로부터 파생된 두 개의 버텍스들의 경우에는 속도차 평균이 0이고, 분산이 큰 가우시안 분포를 따른다.Coherent motion constraints indicate that any two vertices derived from one object will average the velocity differences for a pair of blobs in the same frame if the blobs obtained in every frame are ordered in chronological order. Value
Figure pat00083
The average of is 0 and its variance follows a small Gaussian distribution. On the other hand, for two vertices derived from other objects, the velocity difference averages zero and follows a Gaussian distribution with large variance.

따라서 N개의 프레임에서 관찰된 속도차

Figure pat00084
Figure pat00085
가 속한 가우시안 분포로 모델링한다.
Figure pat00086
는 지시함수(indicator function)로서 도 10에 도시된 바와 같이
Figure pat00087
에 연관된 블랍들이 일관되게 움직이면 1이고, 아니면 0이다. 속도차
Figure pat00088
가 주어질 때, 부모 V의 자식
Figure pat00089
에 있는 블랍들이 일관된 움직임 (coherent motion)을 만족하는 확률
Figure pat00090
는 아래의 수식 8과 같다.Therefore, the observed velocity difference in N frames
Figure pat00084
To
Figure pat00085
It is modeled as a Gaussian distribution to which it belongs.
Figure pat00086
Is an indicator function as shown in FIG. 10.
Figure pat00087
The blobs associated with are consistently 1, otherwise 0. Speed difference
Figure pat00088
Is given, the child of parent V
Figure pat00089
The probability that blobs in the plane satisfy a coherent motion
Figure pat00090
Is shown in Equation 8 below.

Figure pat00091
Figure pat00091

이 수식 8의 확률은 부모 버텍스 V가 그룹인지와, 자식들의 쌍들이 객체인지를 결정하기 위한 가설검정 알고리즘(hypothesis test algorithm)에서 사용된다. 그리고, 객체로 분류된 버텍스의 후손들(descendants)는 분열된 조각이기 때문에 그래프에 표시된 부모-자식 관계에 기초하여 분열(fragment)로 분류한다.The probability of Equation 8 is used in the hypothesis test algorithm to determine whether the parent vertex V is a group and whether the pairs of children are objects. Since the descendants of the vertices classified as objects are fragmented fragments, they are classified as fragments based on the parent-child relationship shown in the graph.

버텍스를 객체(object), 분열(fragment) 또는 그룹(group)으로 분류하고, 아울러 알고리즘의 중간 단계에서 일시적으로 '그룹 분열(fragment-of-group)'과 '객체 가능(possible-object)' 이라는 버텍스 라벨을 부여한다.Classify vertices as objects, fragments, or groups, and in the middle of the algorithm, temporarily call them "fragment-of-group" and "possible-object". Give the vertex label.

그룹 분열 라벨은 모든 자식들과 일관되게 움직이는 그룹 버텍스 V의 자식들 Wi를 위해 사용된다. 자식 버텍스들은 객체로부터 파생된 다수의 조각들이거나, 다수의 객체가 함께 움직여서 구분이 불가능한 경우일 수도 있다. 객체 가능 라벨은 그룹 버텍스 V의 자식들

Figure pat00092
이 일관된 움직임을 보이지 않아서 하나의 객체로 속할 수 없는 경우에
Figure pat00093
에 부여된다. 즉, 객체 가능 라벨이 부여된 객체들 중에 어떤 것은 실제로 그룹 분열 상태일 수도 있기 때문에, 즉시 객체로 갱신되지는 않는다. 그룹 분열 라벨과 객체 가능 라벨은 분열, 객체, 또는 그룹으로 분류된다.The group break label is used for the children W i of group vertex V that move consistently with all children. Child vertices may be multiple pieces derived from an object, or may be indistinguishable because multiple objects move together. Object-capable labels are children of group vertex V
Figure pat00092
If you can't belong to one object because you don't show this consistent movement
Figure pat00093
Is given to. That is, some of the objects given an object-capable label may not be updated to the object immediately because they may actually be in a group disruption state. Group cleavage labels and objectable labels are classified as cleavage, objects, or groups.

블랍추론그래프라벨링수단(33)이 블랍추론그래프의 각 버텍스에 라벨링하는 과정을 설명하면 다음과 같다.
The blob inference graph labeling means 33 describes the process of labeling each vertex of the blob inference graph as follows.

초기화(Initialization)Initialization

부모 V에 대응하는 자식 W의 부모-결정 변수 d(W,V)는 W가 V의 다른 자식들과 일관되게 움직이면 0, 그렇지 않은 경우에는 1이며, 0으로 초기화 한다. 이 값은 나중에 객체 가능 객체들의 최종 라벨을 할당할 때 사용된다.
The parent-determined variable d (W, V) of the child W corresponding to the parent V is zero if W moves consistently with the other children of V, otherwise it is 1, and is initialized to zero. This value is used later to assign the final label of objectable objects.

바텀업 프로세싱(Bottom-Up Processing)Bottom-Up Processing

각각의 버텍스들를 확인하여 그들의 자식들이 일관되게 움직였는지를 검사한다. 임의의 버텍스의 모든 자식들이 다 확인되고 나서야 버텍스도 확인된다. 만약 V가 리프이면, 확인된 것으로 표시하고, 다음을 진행한다. 리프가 아니면, V가 그룹인지를 검사한다. 이것은 V의 자식들 중 하나가 그룹이거나 어떤 쌍

Figure pat00094
가 일관된 움직임 제약을 위반하는 경우에 일어난다. 이를 수식으로 표현하면 수식 9와 같다.Check each vertex to see if their children are moving consistently. Vertices are not checked until all children of any vertices have been checked. If V is a leaf, mark it as confirmed and proceed. If not a leaf, check if V is a group. This means that one of V's children is a group or some pair
Figure pat00094
Happens if you violate the consistent movement constraints. This can be expressed as an equation (9).

Figure pat00095
Figure pat00095

여기서,

Figure pat00096
는 모든 자식 버텍스에 있는 블랍들이 일관되게 움직일 확률이며, 이 발명에서는 자식들 vi, vj의 모든 쌍들 중에
Figure pat00097
로 정의한다. 단, 일관된 움직임 제약 확인을 위한 버텍스 쌍을 지을 때, VUS 단위로 고려한다. 왜냐하면, 다른 VUS들에 존재하는 버텍스들은 같은 시간에 존재하지 않기 때문에 일관된 움직임을 가질 수 없기 때문이다. 만약, 수 9에서 구한
Figure pat00098
이면, V는 그룹으로 분류된다.
Figure pat00099
인 자식들
Figure pat00100
의 모든 쌍에
Figure pat00101
가 그룹으로 분류되지 않았으면 객체 가능으로 분류되고,
Figure pat00102
,
Figure pat00103
로 설정된다.
here,
Figure pat00096
Is the probability that the blobs in all child vertices move consistently, and in this invention, among all pairs of children v i , v j
Figure pat00097
. However, when constructing vertex pairs for consistent motion constraint checking, consider them in VUS units. This is because vertices that exist in different VUSs cannot have consistent movement because they do not exist at the same time. If, obtained from number nine
Figure pat00098
If, V is classified into a group.
Figure pat00099
Being children
Figure pat00100
In every pair of
Figure pat00101
If is not classified as a group, it is classified as Objectable,
Figure pat00102
,
Figure pat00103
Is set to.

버텍스 라벨 갱신(Updating Vertex-labels)Updating Vertex-labels

분열 상태로 분류된 루트 버텍스는 객체 라벨로 갱신된다. 만약 그룹 버텍스 V가 d(W,V)=0인 객체 가능 자식 객체 W 를 가지고 있으면, W는 그룹 분열 라벨로 갱신된다. 객체 가능 라벨로 분류되고 모든 부모 버텍스들 Wk 에 대해서 d(W,Vk)=1 인 버텍스 W는 객체 라벨로 갱신된다. 이는 그 버텍스에 속한 블랍들이 다른 버텍스에 있는 블랍들과 일관적으로 움직이지 않기 때문이다.
Root vertices classified as fragmented are updated with the object label. If the group vertex V has an object enabled child object W with d (W, V) = 0, W is updated with the group break label. A vertex W that is classified as an object-capable label and d (W, V k ) = 1 for all parent vertices W k is updated with the object label. This is because blobs belonging to that vertex do not move consistently with blobs in other vertices.

고유아이디 부여(Assignment of sIDs)Assignment of sIDs

모든 버텍스에 고유아이디(sID)를 부여한다. 객체 버텍스들과 그룹 버텍스들에 각각 고유아이디(sID)를 할당하고, 분할 버텍스들에는 그들의 객체 부모 또는 그룹 부모와 같은 고유아이디(sID)를 할당한다. 도 11은 버텍스에 라벨과 고유아이디(색깔로 표시)를 표시한 일 예를 도시한 도면이다.
Give every vertex a unique ID (sID). Assign unique IDs (sIDs) to object vertices and group vertices, and assign unique IDs (sIDs) such as their object parents or group parents to split vertices. FIG. 11 is a diagram illustrating an example of displaying a label and a unique ID (shown in color) on a vertex.

신뢰 플래그(Confidence Flag)Confidence Flag

프레임 큐(Frame queue)의 크기가 한정적이며, 앞의 초기화 단계를 매번 실행하기 때문에, 추적 정보가 손실될 수 있다. 예를 들어 도 12에 도시된 바와 같이 떨어져 있던 두 개의 객체들이 하나로 합쳐진 후 프레임 큐의 크기보다 오랜 시간 동안 합쳐진 상태를 지속하게 되면 이전 추적 정보가 사라져서, t=2+k일 때 실제로는 그룹 버텍스이지만 객체로 라벨되게 된다. 만약, 어떤 버텍스의 추적 결과가 충분히 믿을 만하다면, 그 버텍스의 라벨을 계속 유지하는 것이 더 낫다. 따라서, 버텍스에 수식 10과 같은 신뢰 플래그(confidence flag) c(vi)를 결정하고 결정된 c(vi)=true 이면 버텍스의 라벨을 초기화하지 않는다. 또한, c(vi)=true 인 객체 버텍스를 자식으로 갖는 부모 버텍스는 그룹으로 라벨된다.Since the size of the frame queue is limited and the previous initialization step is executed each time, the tracking information may be lost. For example, as shown in FIG. 12, when two objects that are separated are merged into one, and then continue to be merged for longer than the size of the frame queue, the previous tracking information disappears, and when the group is actually vertex when t = 2 + k. But will be labeled as an object. If the vertex tracking results are reliable enough, it is better to keep the labels on those vertices. Therefore, a confidence flag c (v i ) as shown in Equation 10 is determined for the vertex, and if c (v i ) = true, the label of the vertex is not initialized. In addition, parent vertices whose children have an object vertex with c (v i ) = true are labeled as a group.

Figure pat00104
Figure pat00104

여기서, k는 프레임 큐 사이즈이다. c(vi)는 객체 로컬라이징 후 정해진다.

Where k is the frame queue size. c (v i ) is determined after object localization.

객체위치설정수단(Object Localization)(34)Object Localization Means (34)

블랍 연관 이벤트에 따라 추론그래프의 구조나 버텍스의 상태가 변화하며 대부분 이를 통해 객체 연관 이벤트를 유추할 수 있다. 하지만 블랍 레벨에서 블랍 연관 이벤트가 발생했더라도 객체 레벨에서는 객체 연관 이벤트가 아닐 수 있기 때문에 블랍 연관 이벤트를 버텍스에 기록하고 해당 버텍스가 객체로 판단될 때 객체 병합이나 객체 분리를 처리한다.
The structure of the inference graph or the state of the vertex changes according to the blob related events, and most of them can infer object related events. However, even if a blob association event occurs at the blob level, it may not be an object association event at the object level. Therefore, the blob association event is recorded in the vertex and object merging or object separation is handled when the vertex is determined to be an object.

블랍 연관 이벤트 기록(Blob Association Event Record)Blob Association Event Record

분할을 고려하지 않은 이전의 객체 추적방법에서는 블랍 레벨에서 병합/분리 이벤트가 발생하면 곧바로 객체 레벨에서의 병합/분리를 의미한다. 하지만 이 발명에서는 블랍 레벨에서 병합/분리 이벤트가 발생하면 그룹의 분할일 수도 있기 때문에 바로 객체 병합/분리로 판단할 수 없다.In the previous object tracking method without considering partitioning, it means merge / separation at the object level as soon as the merge / separation event occurs at the blob level. However, in the present invention, if a merge / separation event occurs at the blob level, it may be a division of a group and thus cannot be directly determined as object merge / separation.

도 13은 블랍 연관 이벤트 로그가 필요한 사례를 도시한 도면이다.FIG. 13 is a diagram illustrating an example in which a blob related event log is required.

도 13에서 t=1일 때, 블랍 레벨에서 분리 이벤트가 발생했으나 이것이 객체 분리로 판단되기에는 어느 정도의 시간이 필요하다. 그리고, 객체 분리로 유추하고 객체를 로컬리제이션(localization)하기 위해서는 분리 이벤트 정보가 필요하다. 따라서 블랍 레벨에서 분리 이벤트가 발생하면 블랍연관 이벤트 기록부를 이용하여 버텍스 v1에 기록하고, 추후 객체 분리로 판단될 때 활용하면 올바른 객체 로컬리제이션 결과를 얻을 수 있다. 블랍 연관 이벤트 기록부는 이벤트가 발생된 시간, 이벤트 종류, 그리고 이벤트와 연관된 블랍들로 구성되고 모든 블랍 연관 이벤트에 대해서 레코드를 생성하고 해당 버텍스의 이벤트 큐에 저장한다.
When t = 1 in FIG. 13, a detach event occurs at the blob level, but it may take some time to determine that this is an object detachment. In order to infer the object separation and localize the object, the separation event information is needed. Therefore, when a detach event occurs at the blob level, the blob association event recorder is used to record the vertex v 1 , and when the object is separated later, a correct object localization result can be obtained. The blob association event log consists of the time the event occurred, the event type, and the blobs associated with the event. It creates a record for every blob association event and stores it in the vertex's event queue.

객체 연관 이벤트 추론(Object Association Events Inference)Object Association Events Inference

기본적으로 앞의 과정을 통해 얻어진 추론 그래프의 버텍스의 라벨에 따라 객체 연관 이벤트가 발생했는지 판단한다. 특히, 객체 또는 그룹으로 라벨된 버텍스에서 객체 연관 이벤트가 발생한다.Basically, it determines whether an object association event has occurred according to the label of the vertex of the inference graph obtained through the above process. In particular, object association events occur on vertices labeled with objects or groups.

먼저, 프레임 t에서 버텍스 vi의 라벨

Figure pat00105
)이 분할(F)이고 해당 버텍스의 이전 프레임에서의 라벨이 객체인 경우 그 버텍스는 객체가 아닌 것으로 판단한다.First, the label of vertex v i in frame t
Figure pat00105
) Is split (F), and if the label in the previous frame of the vertex is an object, it is determined that the vertex is not an object.

프레임 t 에서 버텍스 vi의 라벨이 객체(O)인 경우, 객체 계속, 객체 등장, 객체 분리 중 하나의 이벤트가 발생한 것이다. 구체적으로 버텍스 vi의 프레임 t-1에서의 라벨이 객체(O)이면 객체 계속 이벤트로 판단한다. 만약 버텍스 vi의 프레임 t-1에서의 라벨이 객체가 아닌 경우 객체 등장이나 객체 분리 중 하나인데, 프레임 t에서 해당 버텍스가 루트로 존재하면 객체 등장으로 판단하고, 그렇지 않은 경우에는 객체 분리로 판단한다.If the label of vertex v i is frame O in frame t, one of the following events occurs: object continuation, object appearance, and object separation. In more detail, if the label in the frame t-1 of the vertex v i is the object O, it is determined as the object continuation event. If the label in frame t-1 of vertex v i is not an object, it is either an object appearance or an object separation. If the vertex exists as the root in frame t, it is determined to be an object appearance. do.

한편, 프레임 t에서 버텍스 vi의 라벨이 그룹(G)인데, 프레임 t-1에서 해당 버텍스의 라벨이 그룹이 아닌 경우에는 객체 병합이 발생한 것으로 판단한다.
On the other hand, if the label of the vertex v i is a group G in frame t, but the label of the vertex is not a group in frame t-1, it is determined that object merging has occurred.

객체 위치 설정(Object Localization)Object Localization

객체 연관 이벤트가 결정되면 객체를 위치 시킨다. 구체적인 방법은 아래와 같다.When the object association event is determined, the object is placed. The specific method is as follows.

객체 등장(또는 재등장). 이전에 할당된 객체를 잘못된 객체(false object)로 처리한다. 그리고, 객체 재등장을 고려하여 객체 큐에서 버텍스에 저장된 블랍 등장 이벤트 로그에 기록된 블랍과 유사한 객체를 탐색한다. 유사한 객체가 존재하면 그 객체를 버텍스에 위치시키고, 존재하지 않을 경우에는 새로운 객체를 만들어서 버텍스에 위치 시킨다. Appear (or reappear) the object. Treat the previously allocated object as a false object. Then, in consideration of object re-appearance, the object queue searches for a blob-like object recorded in the blob appearance event log stored in the vertex. If similar objects exist, they are placed in the vertex. If they do not exist, a new object is created and placed in the vertex.

객체 계속. 버텍스에 저장된 최근 블랍 계속 이벤트 로그를 이용하여 객체 속성을 최근 값으로 갱신한다. Continue object. Recent blobs stored in vertices Continue updating the object properties with the latest values using the event log.

객체 병합. 이전에 할당된 객체가 있다면 이것은 잘못된 객체로 처리한다. 버텍스에 저장된 블랍 병합 이벤트 로그를 이용하여 병합에 참여한 버텍스들의 객체 집합의 합집합을 해당 버텍스의 객체 집합으로 설정한다. Merge Objects. If there is a previously allocated object, it is treated as an invalid object. Set the union of the object sets of the vertices participating in the merge to the object set of the vertex by using the blob merge event log stored in the vertex.

객체 분리. 도 15에 도시된 바와 같이 하나의 그룹 버텍스가 다수의 자식 버텍스들로 쪼개지는 경우에 발생한다. 그룹 버텍스의 객체 집합을 자식 버텍스들의 상황에 맞게 위치시키는 것이 중요하다. 구체적으로 n개의 객체가 그룹 버텍스에 포함 되어 있고, m개의 자식 버텍스들로 쪼개지는 경우에 객체들의 자식 버텍스에 위치할 모든 경우의 수는 mn 이다. m개의 버텍스에 대해 객체를 할당하는 경우 중의 하나를

Figure pat00106
라 하자. 여기서,
Figure pat00107
) 는 Vi에 할당된 객체들의 집합이다. 이때,
Figure pat00108
의 확률은 아래의 수식 11과 같이 Vi에 속한
Figure pat00109
Figure pat00110
를 나타낼 확률들의 곱과 같다. Isolate objects. As shown in FIG. 15, this occurs when one group vertex is divided into a plurality of child vertices. It is important to place the group of objects in the group vertices in the context of the child vertices. Specifically, when n objects are included in a group vertex and split into m child vertices, the number of all cases to be placed in the child vertices of the objects is m n . One of the cases where we allocate objects for m vertices
Figure pat00106
Let's do it. here,
Figure pat00107
) Is the set of objects assigned to V i . At this time,
Figure pat00108
The probability of is in V i as in Equation 11 below.
Figure pat00109
end
Figure pat00110
Is equal to the product of the probabilities.

Figure pat00111
Figure pat00111

Figure pat00112
Figure pat00113
로 근사할 수 있으며,
Figure pat00114
는 수식 2를 이용하여 계산할 수 있다. 결국, 아래의 수식 12와 같이 각각의 모든 경우의 확률을 구하여 가장 큰 확률을 갖는 경우
Figure pat00115
를 선택하여 객체들을 위치 시킨다.
Figure pat00112
Is
Figure pat00113
Can be approximated by
Figure pat00114
Can be calculated using Equation 2. After all, as shown in Equation 12 below, the probability of each case is obtained and has the largest probability.
Figure pat00115
Select to place the objects.

Figure pat00116
Figure pat00116

잘못된 객체(false object)로 처리한다 함은, 연관된 상위 버텍스들의 객체 리스트에서 잘못된 객체를 제거하고 다시 등장할 가능성을 고려하여 객체들을 객체 큐에 저장하는 것을 의미한다. 도 14는 4개의 객체들을 갖는 그룹 버텍스가 두 개의 버텍스로 분리되는 과정을 도시한 도면이다.
To treat it as a false object means to remove the wrong object from the object list of the associated parent vertices and store them in the object queue in consideration of the possibility of reappearing. 14 is a diagram illustrating a process of separating a group vertex having four objects into two vertices.

오래된 프레임을 제거Remove old frames

이상적으로 프레임 큐 안에 모든 프레임을 저장해 둔다면, 믿을 수 있는 추적 결과를 얻을 수 있을 것이다. 하지만 프레임 큐의 크기가 한정적이기 때문에 프레임 큐가 가득 차면 가장 오래된 프레임(t-k)을 빼내야 한다. 먼저, 블랍추론그래프를 바탕으로 해당 t-k 프레임의 블랍의 추적 정보를 추출하고, 블랍추론그래프에서 해당 t-k 프레임에 있던 블랍 집합의 버텍스를 제거한다.
Ideally, if you store all the frames in a frame queue, you will get reliable tracking results. However, because the size of the frame queue is limited, the oldest frame (tk) must be pulled out when the frame queue is full. First, we extract the tracking information of the blob of the corresponding tk frame based on the blob inference graph and remove the vertices of the blob set in the corresponding tk frame from the blob inference graph.

이렇게 블랍추론그래프에서 가장 오래된 프레임의 버텍스가 삭제되면, 경우에 따라 필요한 정보가 사라지기도 한다. 도 15는 이러한 문제점을 설명하기 위하여 도시한 도면으로서, 두 객체가 만나서 그룹을 이루고 천천히 떨어지게 되면 일관된 움직임을 위반하지 않아서 한 객체의 분열(fragment)로 라벨될 수 있다. 이때, 두 객체가 시간이 오래지 않아 떨어져서 그룹 버텍스 정보가 남아 있으면, 이 두 객체는 그룹으로부터의 분리 이벤트로 라벨될 것이다.When the vertex of the oldest frame is deleted from the blob inference graph, the necessary information sometimes disappears. FIG. 15 is a diagram illustrating this problem. When two objects meet, group, and fall slowly, they may be labeled as fragments of one object without violating a consistent movement. At this point, if two objects are separated for a short time and group vertex information remains, these two objects will be labeled as detach events from the group.

그러나, 시간이 흘러 해당 프레임이 가장 오래된 프레임이 되어 그룹 버텍스가 제거되면, 실제 이 두 객체를 나타내는 버텍스들이 분열로 잘못 라벨될 수 있다. 따라서 이런 문제를 해결하기 위해서 그룹 버텍스가 그룹에서 삭제될 때에는 남아 있는 이벤트 레코드를 확인하여 남아 있는 가장 최근의 블랍 분리 이벤트 레코드를 이용하여 강제 객체 분리 이벤트를 발생시킨다.
However, over time, when the frame becomes the oldest frame and the group vertices are removed, the vertices that actually represent these two objects may be mislabeled as fragments. Therefore, to solve this problem, when a group vertex is deleted from a group, the remaining event record is checked and a forced object detach event is generated by using the most recent blob detach event record remaining.

평가evaluation

이 발명에서 제안된 객체 추적모듈의 성능을 평가하기 위하여, 이 발명에 따른 객체 추적모듈을 공지된 데이터베이스(CAVIAR dataset)에 적용하여 테스트를 수행하였다. 도시되지 않았으나, 이 발명에 따른 객체 추적모듈을 또 다른 공지의 데이터베이스(PETS'2001)에 적용하여 테스트를 수행하여도 유사한 결과가 얻어진다.In order to evaluate the performance of the object tracking module proposed in the present invention, the test was performed by applying the object tracking module according to the present invention to a known database (CAVIAR dataset). Although not shown, similar results are obtained when the test is performed by applying the object tracking module according to the present invention to another known database (PETS'2001).

블랍 추적 후, 2초 이상 머물러 있는 객체는 정지객체로 보고 전경에서 제거했다. 프레임 큐 크기 k는 10으로 정하였고, 특정 객체 모델 이나 씬 모델(예: entry, exit)을 가정하지 않았다.After the blob trace, objects that stayed for more than two seconds were viewed as stationary objects and removed from the foreground. The frame queue size k is set to 10, and no specific object model or scene model (eg, entry or exit) is assumed.

도 16은 이 발명에 따른 객체 추적모듈을 CAVIA dataset에 적용하여 객체의 분열(fragment)을 처리하는 예를 도시한 도면으로서, 좌측 그림은 원 프레임(original frame)을 도시하고, 중앙 그림은 전경 픽셀들을 도시하며, 우측 그림은 객체 추적 결과를 도시한다. 도 16은 여성이 복도를 걷는 동안 여성의 바지와 바닥 색상이 유사하여 객체의 분열이 발생한 예이다. 이 발명에 따르면 이러한 객체의 분열을 정확히 처리하여 한 사람(객체)로 추적하고 있음을 확인할 수 있다.FIG. 16 illustrates an example of processing an object fragment by applying an object tracking module according to the present invention to a CAVIA dataset. The left figure shows an original frame, and the center figure shows a foreground pixel. The figure on the right shows the object tracking result. FIG. 16 shows an example in which a woman's pants and a floor color are similar to each other while a woman walks down a corridor. According to the present invention, it can be seen that the division of these objects is correctly processed and tracked as one person (object).

도 17은 이 발명에 따른 객체 추적모듈은 CAVIA dataset에 적용하여 연속된 프레임으로부터 객체를 추적한 결과를 도시한 도면으로서, 윗줄 그림들은 원 프레임을 도시하고, 가운데 줄 그림들은 전경 픽셀들을 도시하며, 아래줄 그림들은 객체 추적 결과를 도시한다. 도 17은 두 남자가 그룹으로 등장하여 병합(merge)과 분리(split)를 반복하는 복잡한 상황을 보여준다. 이 발명에 따르면 다수의 객체가 하나의 그룹에 속해 있는 경우라도, 그룹에 속한 각 객체를 타원으로 표시하며 추적하고 있음을 확인할 수 있다.FIG. 17 is a diagram illustrating a result of tracking an object from a continuous frame by applying the CAVIA dataset to an object tracking module according to the present invention. The upper row shows the original frame, the middle row shows the foreground pixels, The lines below show the object tracking results. Figure 17 shows a complex situation in which two men appear in groups and repeat the merge and split. According to the present invention, even if a plurality of objects belong to one group, it can be confirmed that each object belonging to the group is displayed with an ellipse and tracked.

31 : 블랍추적수단 32 : 블랍추론그래프갱신수단
33 : 블랍추론그래프라벨링수단 34 : 객체위치설정수단
31: blob tracking means 32: blob inference graph updating means
33: blob inference graph labeling means 34: object position setting means

Claims (20)

프레임 t-1에서 추출된 블랍 집합
Figure pat00117
으로부터 예측된 블랍집합
Figure pat00118
와 프레임 t에서 추출된 블랍 집합
Figure pat00119
사이에서 발생하는 블랍 연관 이벤트를 추출하고 상기 추출된 블랍 연관 이벤트의 종류에 따라 블랍을 추적하는 블랍추적수단과,
상기 프레임 t-1에서 생성된 블랍 추론 그래프를 이용하여 상기 프레임 t에서 추적된 블랍들에 대해 상기 블랍 연관 이벤트의 종류에 따라 새로운 버텍스와 유향에지를 추가하거나 삭제하여 상기 블랍 추론 그래프를 업데이트하는 블랍추론그래프갱신수단과,
상기 블랍 추론 그래프를 구성하는 버텍스들 중 일관된 움직임을 갖는 버텍스들을 하나의 객체로 묶고 하나의 라벨을 할당하는 블랍추론그래프라벨링수단과,
상기 블랍 추론 그래프를 구성하는 버텍스들의 라벨과 블랍 연관 이벤트의종류에 따라 객체 연관 이벤트 발생 여부를 판단하고, 객체 연관 이벤트를 기반으로 상기 버텍스에 객체를 할당하는 객체위치할당수단을 포함한 것을 특징으로 하는 실시간 다수 객체 추적시스템.
A set of blobs extracted at frame t-1
Figure pat00117
Blob set predicted from
Figure pat00118
Set of blobs extracted from frame t
Figure pat00119
Blob tracking means for extracting a blob association event occurring between and tracking the blobs according to the type of the blob association event extracted,
A blob for updating the blob inference graph by adding or deleting new vertices and directed edges according to the type of the blob related event for the blobs tracked in the frame t using the blob inference graph generated in the frame t-1. Inference graph updating means,
Blob inference graph labeling means for grouping the vertices having a consistent movement among the vertices constituting the blob inference graph into a single object and assigns a label;
Determining whether an object association event occurs according to a label of vertices constituting the blob inference graph and a type of a blob association event, and including an object position allocation means for allocating an object to the vertex based on an object association event. Real time multi-object tracking system.
제 1 항에 있어서, 상기 블랍추적수단은 적어도 하나의 블랍에 상기 블랍 연관 이벤트 중 병합 이벤트와 분리 이벤트가 동시에 발생하면, 상기 병합 이벤트와 분리 이벤트가 발생한 모든 블랍들을 합한 새로운 블랍을 포함하는 가상 프레임을 중간에 삽입한 후 분리 이벤트를 처리하는 것을 특징으로 하는 실시간 다수 객체 추적시스템.The virtual frame according to claim 1, wherein the blob tracking means comprises a new blob including all the blobs in which the merge event and the detach event occur when at least one blob is generated at the same time as the merge event and the detach event. Real-time multiple object tracking system, characterized in that for processing the separation event after inserting the middle. 제 1 항에 있어서, 상기 블랍추론그래프갱신수단은 상기 블랍 추론 그래프를 구성하는 임의의 두 버텍스가 동등하면 상기 동등한 두 버텍스를 하나의 버텍스로 합하는 것을 특징으로 하는 실시간 다수 객체 추적시스템.The real-time multiple object tracking system according to claim 1, wherein the blob inference graph updating unit adds the two equivalent vertices into one vertex if any two vertices constituting the blob inference graph are equal. 제 1 항에 있어서, 상기 블랍추론그래프갱신수단은 상기 블랍 추론 그래프를 구성하는 임의의 제1루트 버텍스가 임의의 제2루트 버텍스의 부분 집합이면, 상기 제2루트 버텍스로부터 제1루트 버텍스로 향하는 유향 에지를 추가하는 것을 특징으로 하는 실시간 다수 객체 추적시스템.2. The apparatus of claim 1, wherein the blob inference graph updating means is directed from the second root vertex to the first root vertex if any first root vertex constituting the blob inference graph is a subset of any second root vertex. Real-time multi-object tracking system, characterized in that the addition of the directed edge. 제 1 항에 있어서, 상기 라벨은 분할, 객체 및 그룹 중 하나인 것을 특징으로 하는 실시간 다수 객체 추적시스템.2. The system of claim 1, wherein the label is one of a partition, an object, and a group. 제 5 항에 있어서, 상기 라벨을 할당하기 전 그룹 분열과 객체 가능 중 하나의 임시라벨을 할당하는 것을 특징으로 하는 실시간 다수 객체 추적시스템.6. The real-time multi-object tracking system according to claim 5, wherein the temporary label of one of the group division and the object possibility is allocated before the label is assigned. 제 1 항에 있어서, 상기 블랍추론그래프라벨링수단은 상기 블랍 추론 그래프를 구성하는 버텍스들 중 일관된 움직임을 갖는 임의의 자식 버텍스를 부모 버텍스와 묶는 바텀업 처리를 수행하는 것을 특징으로 하는 실시간 다수 객체 추적시스템.2. The real-time tracking of multiple objects according to claim 1, wherein the blob inference graph labeling means performs a bottom-up process of tying any child vertices having a consistent movement among the vertices constituting the blob inference graph with the parent vertices. system. 제 1 항에 있어서, 상기 블랍추론그래프라벨링수단은 상기 버텍스에 할당된 라벨의 신뢰성을 표시하는 컨피던스 플래그를 설정하는 것을 특징으로 하는 실시간 다수 객체 추적 시스템.2. The system according to claim 1, wherein the blob inference graph labeling means sets a confidence flag indicating a reliability of a label assigned to the vertex. 제 1 항에 있어서, 상기 객체위치할당수단은 상기 블랍 연관 이벤트가 발생하면 상기 이벤트가 발생된 시간, 이벤트의 종류 및 이벤트와 연관된 블랍들 정보를 포함한 블랍 연관 이벤트 레코드를 생성하고 상기 버텍스에 저장하는 것을 특징으로 하는 실시간 다수 객체 추적 시스템.The apparatus of claim 1, wherein the object location allocating means generates and stores a blob association event record including a time at which the event occurs, a type of event, and blob information associated with the event when the blob association event occurs. Real-time multiple object tracking system, characterized in that. 제 1 항에 있어서, 상기 객체 연관 이벤트는 객체 등장, 객체 계속, 객체 병합, 객체 분리, 객체 퇴장 중 하나인 것을 특징으로 하는 실시간 다수 객체 추적 시스템.The system of claim 1, wherein the object association event is one of an object appearance, an object continuation, an object merge, an object separation, and an object exit. 프레임 t-1에서 추출된 블랍 집합
Figure pat00120
으로부터 예측된 블랍집합
Figure pat00121
와 프레임 t에서 추출된 블랍 집합
Figure pat00122
사이에서 발생하는 블랍 연관 이벤트를 추출하고 상기 추출된 블랍 연관 이벤트의 종류에 따라 블랍을 추적하는 블랍추적단계와,
상기 프레임 t-1에서 생성된 블랍 추론 그래프를 이용하여 상기 프레임 t에서 추적된 블랍들에 대해 상기 블랍 연관 이벤트의 종류에 따라 새로운 버텍스와 유향에지를 추가하거나 삭제하여 상기 블랍 추론 그래프를 업데이트하는 블랍추론그래프갱신단계와,
상기 블랍 추론 그래프를 구성하는 버텍스들 중 일관된 움직임을 갖는 버텍스들을 하나의 객체로 묶고 하나의 라벨을 할당하는 블랍추론그래프라벨링단계와,
상기 블랍 추론 그래프를 구성하는 버텍스들의 라벨과 블랍 연관 이벤트의종류에 따라 객체 연관 이벤트 발생 여부를 판단하고, 객체 연관 이벤트를 기반으로 상기 버텍스에 객체를 할당하는 객체위치할당단계를 포함한 것을 특징으로 하는 실시간 다수 객체 추적방법.
A set of blobs extracted at frame t-1
Figure pat00120
Blob set predicted from
Figure pat00121
Set of blobs extracted from frame t
Figure pat00122
A blob tracking step of extracting blob association events occurring between and tracking the blobs according to the extracted blob association events;
A blob for updating the blob inference graph by adding or deleting new vertices and directed edges according to the type of the blob related event for the blobs tracked in the frame t using the blob inference graph generated in the frame t-1. Inference graph update phase,
A blob inference graph labeling step of grouping vertices having a consistent movement among the vertices constituting the blob inference graph into one object and allocating one label;
And determining an object association event according to a label of vertices and a blob association event of the blob inference graph, and assigning an object to the vertex based on an object association event. Real time tracking of multiple objects.
제 11 항에 있어서, 상기 블랍추적단계는 적어도 하나의 블랍에 상기 블랍 연관 이벤트 중 병합 이벤트와 분리 이벤트가 동시에 발생하면, 상기 병합 이벤트와 분리 이벤트가 발생한 모든 블랍들을 합한 새로운 블랍을 포함하는 가상 프레임을 중간에 삽입한 후 분리 이벤트를 처리하는 것을 특징으로 하는 실시간 다수 객체 추적방법.12. The virtual frame according to claim 11, wherein the blob tracking step includes a new blob including all blobs in which the merge event and the split event are generated when the merge event and the split event occur simultaneously in at least one blob. Real-time multiple object tracking method characterized in that for processing the separation event after inserting the middle. 제 11 항에 있어서, 상기 블랍추론그래프갱신단계는 상기 블랍 추론 그래프를 구성하는 임의의 두 버텍스가 동등하면 상기 동등한 두 버텍스를 하나의 버텍스로 합하는 것을 특징으로 하는 실시간 다수 객체 추적방법.12. The method of claim 11, wherein the updating of the blob inference graph combines the two equivalent vertices into one vertex if any two vertices constituting the blob inference graph are equal. 제 11 항에 있어서, 상기 블랍추론그래프갱신단계는 상기 블랍 추론 그래프를 구성하는 임의의 제1루트 버텍스가 임의의 제2루트 버텍스의 부분 집합이면, 상기 제2루트 버텍스로부터 제1루트 버텍스로 향하는 유향 에지를 추가하는 것을 특징으로 하는 실시간 다수 객체 추적방법.12. The method of claim 11, wherein the updating of the blob inference graph is performed from the second root vertex to the first root vertex if any first root vertex constituting the blob inference graph is a subset of any second root vertex. Real-time multi-object tracking method characterized by adding a directed edge. 제 11 항에 있어서, 상기 라벨은 분할, 객체 및 그룹 중 하나인 것을 특징으로 하는 실시간 다수 객체 추적방법.12. The method of claim 11, wherein the label is one of a partition, an object, and a group. 제 15 항에 있어서, 상기 라벨을 할당하기 전 그룹 분열과 객체 가능 중 하나의 임시라벨을 할당하는 것을 특징으로 하는 실시간 다수 객체 추적방법.16. The method of claim 15, wherein the temporary label of one of the group division and the object possibility is allocated before the label is assigned. 제 11 항에 있어서, 상기 블랍추론그래프라벨링단계는 상기 블랍 추론 그래프를 구성하는 버텍스들 중 일관된 움직임을 갖는 임의의 자식 버텍스를 부모 버텍스와 묶는 바텀업 처리를 수행하는 것을 특징으로 하는 실시간 다수 객체 추적방법.The real-time tracking of multiple objects according to claim 11, wherein the blob inference graph preparating step performs a bottom-up process of tying any child vertices having a consistent movement among the vertices constituting the blob inference graph with the parent vertices. Way. 제 11 항에 있어서, 상기 블랍추론그래프라벨링단계는 상기 버텍스에 할당된 라벨의 신뢰성을 표시하는 컨피던스 플래그를 설정하는 것을 특징으로 하는 실시간 다수 객체 추적방법.12. The method of claim 11, wherein the blob inference graphing step sets a confidence flag indicating a reliability of a label assigned to the vertex. 제 11 항에 있어서, 상기 객체위치할당단계는 상기 블랍 연관 이벤트가 발생하면 상기 이벤트가 발생된 시간, 이벤트의 종류 및 이벤트와 연관된 블랍들 정보를 포함한 블랍 연관 이벤트 레코드를 생성하고 상기 버텍스에 저장하는 것을 특징으로 하는 실시간 다수 객체 추적 방법.12. The method of claim 11, wherein the object location allocating step generates and stores a blob association event record including the time at which the event occurred, the type of the event, and blob information associated with the event when the blob association event occurs. Real-time multiple object tracking method, characterized in that. 제 11 항에 있어서, 상기 객체 연관 이벤트는 객체 등장, 객체 계속, 객체 병합, 객체 분리, 객체 퇴장 중 하나인 것을 특징으로 하는 실시간 다수 객체 추적 방법.

12. The method of claim 11, wherein the object association event is one of object appearance, object continuation, object merging, object separation, object exit.

KR1020100029386A 2010-03-31 2010-03-31 system and method for tracking multiple objects in real time KR101158729B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100029386A KR101158729B1 (en) 2010-03-31 2010-03-31 system and method for tracking multiple objects in real time

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100029386A KR101158729B1 (en) 2010-03-31 2010-03-31 system and method for tracking multiple objects in real time

Publications (2)

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

Family

ID=45391527

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100029386A KR101158729B1 (en) 2010-03-31 2010-03-31 system and method for tracking multiple objects in real time

Country Status (1)

Country Link
KR (1) KR101158729B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101406334B1 (en) * 2013-04-18 2014-06-19 전북대학교산학협력단 System and method for tracking multiple object using reliability and delayed decision
WO2014166823A1 (en) * 2013-04-11 2014-10-16 Commissariat A L'energie Atomique Et Aux Energies Alternatives Device and method for the 3d video monitoring of objects of interest
KR20170135319A (en) * 2016-05-31 2017-12-08 한국전자통신연구원 Apparatus for interactive event recognition
CN110782661A (en) * 2019-09-17 2020-02-11 浙江大学 General hybrid traffic simulation method based on data-driven optimization

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102203810B1 (en) 2013-10-01 2021-01-15 삼성전자주식회사 User interfacing apparatus and method using an event corresponding a user input

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100651034B1 (en) * 2004-12-08 2006-11-29 한국전자통신연구원 System for detecting targets and method thereof
KR100744668B1 (en) * 2006-01-27 2007-08-02 덕성여자대학교 산학협력단 Multiple person surveillance system using networked cameras

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014166823A1 (en) * 2013-04-11 2014-10-16 Commissariat A L'energie Atomique Et Aux Energies Alternatives Device and method for the 3d video monitoring of objects of interest
FR3004573A1 (en) * 2013-04-11 2014-10-17 Commissariat Energie Atomique DEVICE AND METHOD FOR 3D VIDEO TRACKING OF OBJECTS OF INTEREST
US10225523B2 (en) 2013-04-11 2019-03-05 Commissariat A L'energie Atomique Et Aux Energies Alternatives Device and method for the 3D video monitoring of objects of interest
KR101406334B1 (en) * 2013-04-18 2014-06-19 전북대학교산학협력단 System and method for tracking multiple object using reliability and delayed decision
KR20170135319A (en) * 2016-05-31 2017-12-08 한국전자통신연구원 Apparatus for interactive event recognition
CN110782661A (en) * 2019-09-17 2020-02-11 浙江大学 General hybrid traffic simulation method based on data-driven optimization

Also Published As

Publication number Publication date
KR101158729B1 (en) 2012-06-22

Similar Documents

Publication Publication Date Title
Wang et al. Tracking interacting objects using intertwined flows
Benabbas et al. Motion pattern extraction and event detection for automatic visual surveillance
US8705861B2 (en) Context processor for video analysis system
CN100573548C (en) The method and apparatus of tracking bimanual movements
Ali et al. Modeling, simulation and visual analysis of crowds: a multidisciplinary perspective
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
CN104657740A (en) Method and apparatus for segmenting an occupancy grid for a surroundings model of a driver assistance system for a vehicle
KR101158729B1 (en) system and method for tracking multiple objects in real time
Khan et al. Tracking in uncalibrated cameras with overlapping field of view
KR100968024B1 (en) Method and system for tracing trajectory of moving objects using surveillance systems' network
Brand The" inverse hollywood problem": From video to scripts and storyboards via causal analysis
Batool et al. Telemonitoring of daily activities based on multi-sensors data fusion
CN113628245A (en) Multi-target tracking method, device, electronic equipment and storage medium
Henrio et al. Anomaly detection in videos recorded by drones in a surveillance context
Sajjad et al. A study on the learning based human pose recognition
CN114926859A (en) Pedestrian multi-target tracking method in dense scene combined with head tracking
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
Dogra et al. Scene representation and anomalous activity detection using weighted region association graph
Veit et al. Space-time a contrario clustering for detecting coherent motions
Nayak et al. Vector field analysis for multi-object behavior modeling
Karbasi et al. Real-time hand detection by depth images: A survey
Abdullah et al. A survey of deep learning-based object detection: Application and open issues

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