KR20210117760A - Method for abnormal behavior detection based on cctv images, and apparatus for the same - Google Patents

Method for abnormal behavior detection based on cctv images, and apparatus for the same Download PDF

Info

Publication number
KR20210117760A
KR20210117760A KR1020200034430A KR20200034430A KR20210117760A KR 20210117760 A KR20210117760 A KR 20210117760A KR 1020200034430 A KR1020200034430 A KR 1020200034430A KR 20200034430 A KR20200034430 A KR 20200034430A KR 20210117760 A KR20210117760 A KR 20210117760A
Authority
KR
South Korea
Prior art keywords
person
list
event
image
human
Prior art date
Application number
KR1020200034430A
Other languages
Korean (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 KR1020200034430A priority Critical patent/KR20210117760A/en
Publication of KR20210117760A publication Critical patent/KR20210117760A/en

Links

Images

Classifications

    • GPHYSICS
    • G08SIGNALLING
    • G08BSIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
    • G08B13/00Burglar, theft or intruder alarms
    • G08B13/18Actuation by interference with heat, light, or radiation of shorter wavelength; Actuation by intruding sources of heat, light, or radiation of shorter wavelength
    • G08B13/189Actuation by interference with heat, light, or radiation of shorter wavelength; Actuation by intruding sources of heat, light, or radiation of shorter wavelength using passive radiation detection systems
    • G08B13/194Actuation by interference with heat, light, or radiation of shorter wavelength; Actuation by intruding sources of heat, light, or radiation of shorter wavelength using passive radiation detection systems using image scanning and comparing systems
    • G08B13/196Actuation by interference with heat, light, or radiation of shorter wavelength; Actuation by intruding sources of heat, light, or radiation of shorter wavelength using passive radiation detection systems using image scanning and comparing systems using television cameras
    • G08B13/19602Image analysis to detect motion of the intruder, e.g. by frame subtraction

Landscapes

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

Abstract

The described embodiment relates to a technology for detecting an abnormal behavior of a person by analyzing a CCTV image. A method for detecting an abnormal behavior based on a CCTV image includes the steps of: detecting a human object from a CCTV image using a human detection engine; generating a tracking information list based on the detected tracking information of the human object; determining an abnormal behavior event for a person on the tracking information list; and generating an alarm signal for the abnormal behavior event.

Description

CCTV 영상 기반 이상 행동 감지 방법 및 이를 위한 장치{METHOD FOR ABNORMAL BEHAVIOR DETECTION BASED ON CCTV IMAGES, AND APPARATUS FOR THE SAME}CCTV image-based abnormal behavior detection method and device therefor

본 발명은 CCTV 영상을 분석하여 사람의 이상 행동을 감지하는 기술에 관한 것이다. The present invention relates to a technology for detecting abnormal behavior of a person by analyzing a CCTV image.

전국적으로 설치된 CCTV는 범죄 수사, 질병 발생시 감염 경로 파악 등 다양한 분야에서 이미 커다란 역할을 수행하고 있다. 그러나 수많은 CCTV 영상은 사람이 지속적으로 모니터링 하는 것은 사실상 불가능하기 때문에 사건이 발생한 이후에 사건을 되돌아 보는 후행적인 역할로 한정되어 사용되고 있다. 이러한 문제점을 극복하기 위하여 영상을 사람의 도움 없이 실시간으로 분석하여 이벤트가 발생하는 시점을 감지하는 기능을 수행하는 지능형 CCTV가 등장하게 되었다. CCTVs installed nationwide are already playing a big role in various fields, such as criminal investigations and identification of infection routes in the event of a disease. However, since it is virtually impossible for a person to continuously monitor a number of CCTV images, they are used limitedly as a follow-up role to look back on the incident after it has occurred. In order to overcome this problem, an intelligent CCTV that performs a function of detecting the time when an event occurs by analyzing an image in real time without human assistance has emerged.

그러나 지능형 CCTV는 오경보(False Alarm)가 너무 자주 발생하면 그때마다 확인을 하기 위한 수고가 필요하게 되고, 반대로 검출 대상 행동을 놓치는 일이 자주 발생하면 본래의 목적을 달성할 수 없게 된다. However, if false alarms occur too often, the intelligent CCTV requires effort to confirm each time.

일반적으로 사람을 대상으로 한 지능형 CCTV의 감시 방법은 먼저 사람을 검출 및 추적하여 사람을 움직임을 파악하고, 사람의 어떤 특정한 행동이 나타나는지를 확인하는 방식으로 이루어 진다. 최근 인공지능 딥러닝 등의 기술의 발전에 따라 사람 검출의 정확성은 크게 향상되었으나, 여전히 오검출 및 미검출의 가능성은 존재하고, 이는 오경보를 발생시키는 주원인이 된다.In general, the surveillance method of intelligent CCTV targeting people is done by first detecting and tracking people to understand their movements, and then confirming what specific actions of people appear. Although the accuracy of human detection has been greatly improved with the recent development of technologies such as artificial intelligence deep learning, the possibility of false detection and non-detection still exists, which is the main cause of false alarms.

한국등록특허 제 10-1980551호는 기계학습 객체 검출을 이용한 실시간 지능형 CCTV 영상 분석 행위 탐지 시스템 및 방법을 개시하고 있다. 상기 기술은 영상프레임에서 사전에 기 입력된 기준설정객체와 매칭되는 객체를 기계학습을 통해 검출하고, 기 입력된 객체 행동과 매칭되는 위험행동객체를 검출한다. 이 기술의 경우에도 객체 검출에 있어 오류가 있을 수 있고, 오경보의 가능성도 여전히 존재하는 문제점이 있다.Korean Patent Registration No. 10-1980551 discloses a real-time intelligent CCTV image analysis behavior detection system and method using machine learning object detection. The technology detects an object matching a pre-input reference setting object in an image frame through machine learning, and detects a dangerous behavior object matching the pre-entered object behavior. Even in the case of this technique, there may be errors in object detection, and there is a problem that the possibility of false alarms still exists.

따라서 지능형 CCTV를 이용한 감시 방법에서 객체 검출의 오류를 줄이고, 특히 이상 행동 감시의 실시간 처리를 위한 검출 방법의 필요성이 대두된다.Therefore, there is a need for a detection method to reduce errors in object detection in a monitoring method using an intelligent CCTV, and in particular, a detection method for real-time processing of abnormal behavior monitoring.

본 발명의 목적은 CCTV 영상 분석을 통해 사람의 이상 행동을 감지하는 기술에 있어서, 빠르고 정확하게 사람을 검출 및 추적을 할 수 있는 CCTV 영상 기반 이상 행동 감지 방법 및 장치를 제공함에 있다. An object of the present invention is to provide a CCTV image-based abnormal behavior detection method and apparatus capable of quickly and accurately detecting and tracking a person in a technology for detecting abnormal behavior of a person through CCTV image analysis.

또한, 본 발명의 목적은 객체의 검출 및 추적, 그리고 이벤트 판정에 있어서 계산량이 많지 않은 기술을 사용함으로써 실시간 처리가 가능한 이상 행동 감지 방법을 제공함에 있다. In addition, an object of the present invention is to provide a method for detecting abnormal behavior capable of real-time processing by using a technique that does not require a large amount of computation in detecting and tracking an object and determining an event.

또한, 본 발명의 목적은 검출하고자 하는 이벤트간의 간섭 현상을 최소화함으로써 대상 이벤트를 정확히 검출하면서도 오경보를 최소화 할 수 있는 이상 행동 감지 방법을 제공함에 있다.Another object of the present invention is to provide a method for detecting an abnormal behavior capable of accurately detecting a target event and minimizing false alarms by minimizing interference between events to be detected.

실시예에 따른 CCTV 영상 기반 이상 행동 감지 방법은 CCTV 영상으로부터 사람 검출 엔진을 이용하여 사람 객체를 검출하는 단계; 검출된 사람 객체의 추적 정보에 기반하여 추적 정보 리스트를 생성하는 단계; 상기 추적 정보 리스트에 있는 사람에 대하여 이상 행동 이벤트를 판정하는 단계; 및 상기 이상 행동 이벤트에 대해 알람 신호를 생성하는 단계를 포함한다. A CCTV image-based abnormal behavior detection method according to an embodiment includes: detecting a human object from a CCTV image using a human detection engine; generating a tracking information list based on the detected tracking information of the human object; determining an anomalous behavioral event for a person on the tracking information list; and generating an alarm signal for the abnormal behavior event.

이때, 상기 추적 정보 리스트를 생성하는 단계는 상기 영상의 이전 프레임의 추적 정보 리스트를 관리리스트로 저장하는 단계; 상기 영상의 현재 프레임에서 검출된 사람 객체의 리스트를 검출리스트에 저장하는 단계; 상기 관리리스트와 상기 검출리스트를 비교하여 업데이트 리스트를 생성하는 단계; 상기 업데이트 리스트에 포함되어 있는 사람 객체의 이동속도에 기반하여 상기 사람 객체가 사람인지 확인하는 단계; 및 기준 영상과 현재 영상을 비교하여 상기 사람이 화면에서 이탈한 것인지 확인하는 단계를 포함할 수 있다. In this case, the step of generating the tracking information list includes: storing the tracking information list of the previous frame of the image as a management list; storing a list of human objects detected in the current frame of the image in a detection list; generating an update list by comparing the management list with the detection list; checking whether the person object is a person based on the moving speed of the person object included in the update list; and comparing the reference image with the current image to determine whether the person has left the screen.

이때, 상기 업데이트 리스트를 생성하는 단계는 상기 관리리스트와 검출리스트 모두에 들어 있는 사람 객체의 리스트를 업데이트 리스트로 저장하는 단계; 상기 관리리스트에는 없고, 상기 검출리스트에만 들어 있는 사람 객체의 리스트를 상기 업데이트 리스트에 추가하는 단계; 상기 검출리스트에는 없고, 상기 관리리스트에만 들어 있는 사람 객체의 리스트에 대하여 사람 추적 알고리즘을 사용하여 사람 추적 기능을 수행하는 단계; 및 상기 사람 추적 기능을 수행하여 얻은 정보를 기반으로 상기 업데이트 리스트에서 제외하는 단계를 포함할 수 있다. In this case, the generating of the updated list may include: storing a list of human objects included in both the management list and the detection list as an updated list; adding, to the update list, a list of human objects that are not in the management list and are included only in the detection list; performing a person tracking function using a person tracking algorithm for a list of person objects that are not in the detection list and are included only in the management list; and excluding from the update list based on information obtained by performing the person tracking function.

이때, 상기 사람 객체가 사람인지 확인하는 단계는 상기 업데이트 리스트의 사람 객체의 이동속도를 계산하는 단계; 상기 이동속도가 사람의 이동속도로 지정된 범위 안에 있는 경우는 상기 사람 객체를 사람으로 확인하는 단계; 및 사람으로 확인되지 않은 상기 상기 객체를 상기 업데이트 리스트에서 제외하는 단계를 포함할 수 있다. In this case, the step of determining whether the person object is a person may include calculating a movement speed of the person object in the updated list; identifying the person object as a person when the movement speed is within a specified range for the movement speed of the person; and excluding the object, which is not identified as a person, from the update list.

이때, 상기 사람이 화면에서 이탈한 것인지 확인하는 단계는 상기 영상 내에 사람이 전혀 포함되어 있지 않은 기준 영상을 저장하는 단계; 상기 기준 영상과 현재 영상을 비교하여 차이값을 저장하는 단계; 상기 차이값을 기반으로 상기 업데이트 리스트의 사람이 화면에서 이탈한 것인지 여부를 판단하는 단계; 화면에서 이탈한 사람을 상기 업데이트 리스트에서 제외하는 단계; 및 화면에서 이탈한 사람이 제외된 상기 업데이트 리스트를 추적 정보 리스트로 저장하는 단계를 포함할 수 있다. In this case, the step of determining whether the person has left the screen may include: storing a reference image in which no person is included in the image; comparing the reference image with the current image and storing a difference value; determining whether a person in the update list has left the screen based on the difference value; excluding a person who has left the screen from the update list; And it may include the step of storing the updated list excluding the person who deviated from the screen as a tracking information list.

이때, 상기 이벤트를 판정하는 단계는 배회침입 이벤트를 판정하는 단계; 쓰러짐 이벤트를 판정하는 단계; 및 싸움 이벤트를 판정하는 단계를 포함할 수 있다. In this case, the step of determining the event may include: determining a wandering intrusion event; determining a collapse event; and determining a fight event.

이때, 상기 배회침입 이벤트를 판정하는 단계는 상기 추적 정보 리스트에 포함되어 있는 사람이 침입 감시 영역 내에 들어가면 침입 이벤트를 발생시키는 단계; 및 상기 사람이 배회 감시 영역 내에 들어가 일정한 시간 이상 머무르면 배회 이벤트를 발생시키는 단계를 포함할 수 있다. In this case, the step of determining the intrusion event may include: generating an intrusion event when a person included in the tracking information list enters an intrusion monitoring area; and generating a wandering event when the person enters the wandering monitoring area and stays for a predetermined time or more.

이때, 상기 쓰러짐 이벤트를 판정하는 단계는 상기 추적 정보 리스트에 포함되어 있는 사람에 대해 연속한 두 개의 일정한 시간 구간에서 모션 강도를 계산하는 단계; 상기 두 개의 모션 강도를 비교하여 쓰러짐 이벤트 후보를 생성시키는 단계; 상기 쓰러짐 이벤트 후보의 자세를 신경망을 이용하여 인식하는 단계; 및 상기 쓰러짐 이벤트 후보의 인식된 자세 중 쓰러짐으로 정의된 자세가 정해진 횟수 이상 발생한 경우, 쓰러짐 이벤트를 발생시키는 단계를 포함할 수 있다. In this case, the step of determining the falling event comprises: calculating the motion intensity in two consecutive time intervals for the person included in the tracking information list; generating a fall event candidate by comparing the two motion intensities; Recognizing the posture of the fall event candidate using a neural network; and generating a falling event when a posture defined as a fall among the recognized postures of the fall event candidate occurs more than a predetermined number of times.

이때, 상기 싸움 이벤트를 판정하는 단계는 상기 추적 정보 리스트에 포함되어 있는 사람에 대하여 싸움 특징을 벡터 형태로 추출하여 추출된 특징 벡터를 생성하는 단계; 및 상기 추출된 특징 벡터로부터 특징 벡터 분류기를 이용하여 싸움 이벤트를 발생하는 단계를 포함할 수 있다. In this case, the determining of the fighting event may include: generating the extracted feature vector by extracting the fighting characteristics of a person included in the tracking information list in a vector form; and generating a fight event from the extracted feature vector using a feature vector classifier.

또한, 실시예에 따른 CCTV영상 기반 이상 행동 감지 장치는 CCTV 영상으로부터 사람 검출 엔진을 이용하여 사람 객체를 검출하는 사람 객체 검출부; 검출된 사람 객체의 추적정보에 기반하여 추적 정보 리스트를 생성하는 추적 정보 리스트 생성부; 상기 추적 정보 리스트에 있는 사람에 대하여 이상행동 이벤트를 판정하는 이벤트 판정부; 및 상기 이벤트에 대해 알람 신호를 생성하는 알람 신호 생성부를 포함한다.In addition, the CCTV image-based abnormal behavior detection apparatus according to an embodiment includes a human object detector for detecting a human object from a CCTV image using a human detection engine; a tracking information list generator configured to generate a tracking information list based on the detected tracking information of the human object; an event determination unit for determining an abnormal behavior event for a person in the tracking information list; and an alarm signal generator configured to generate an alarm signal for the event.

본 발명에 따르면 CCTV 영상 분석을 통해 사람의 이상 행동을 감지하는 기술에 있어서, 빠르고 정확하게 사람을 검출 및 추적을 할 수 있는 CCTV 영상 기반 이상 행동 감지 방법 및 장치를 제공할 수 있다. According to the present invention, in the technology for detecting abnormal behavior of a person through CCTV image analysis, it is possible to provide a CCTV image-based abnormal behavior detection method and apparatus capable of quickly and accurately detecting and tracking a person.

또한, 본 발명에 따르면 객체의 검출 및 추적, 그리고 이벤트 판정에 있어서 계산량이 많지 않은 기술을 사용함으로써 실시간 처리가 가능한 이상 행동 감지 방법을 제공할 수 있다.In addition, according to the present invention, it is possible to provide a method for detecting an abnormal behavior capable of real-time processing by using a technique that does not require a large amount of computation in detecting and tracking an object and determining an event.

또한, 본 발명에 따르면 검출하고자 하는 이벤트간의 간섭 현상을 최소화함으로써 대상 이벤트를 정확히 검출하면서도 오경보를 최소화 할 수 있는 이상 행동 감지 방법을 제공할 수 있다.In addition, according to the present invention, it is possible to provide an abnormal behavior detection method capable of minimizing false alarms while accurately detecting a target event by minimizing interference between events to be detected.

도 1은 실시예에 따른 CCTV 영상 기반 이상 행동 감지 장치(100)의 일 예를 나타낸 블록도이다.
도 2는 도 1에 도시된 추적 정보 리스트 생성부(130)의 일 예를 나타낸 블록도이다.
도 3은 도 2에 도시된 업데이트 리스트 생성부(230)의 일 예를 나타낸 블록도이다.
도 4는 도 3에 도시된 업데이트 리스트 제외부(330)의 활용 예를 나타낸 도면이다.
도 5는 도 2에 도시된 사람 확인부(240)의 활용 예를 나타낸 도면이다.
도 6은 도 1에 도시된 이벤트 판정부(140)의 일 예를 나타낸 블록도이다.
도 7은 도 6에 도시된 쓰러짐 이벤트 판정부(620)의 일 예를 나타낸 블록도이다.
도 8은 도 7에 도시된 모션강도 계산부(710)에서 모션 강도를 계산하기 위한시간 영역을 나타낸 도면이다.
도 9는 도 7에 도시된 자세 인식부(730)에서 사용하는 신경망인 자세 인식 네트워크를 나타낸 도면이다.
도 10은 도 7에 도시된 자세 인식부(730)에서 사용하는 10가지의 자세를 나타낸 도면이다.
도 11은 도 6에 도시된 싸움 이벤트 판정부(630)에서 사용되는 특징 벡터 분류기를 나타낸 도면이다.
도 12은 실시예에 따른 CCTV 영상 기반 이상 행동 감지 방법의 일 예를 나타낸 동작 흐름도이다.
도 13는 도 12에 도시된 추적 정보 리스트 생성 단계(S1230)의 일 예를 나타낸 동작 흐름도이다.
도 14는 실시예에 따른 컴퓨터 시스템 구성을 나타낸 도면이다.
1 is a block diagram illustrating an example of an apparatus 100 for detecting abnormal behavior based on a CCTV image according to an embodiment.
FIG. 2 is a block diagram illustrating an example of the tracking information list generator 130 shown in FIG. 1 .
FIG. 3 is a block diagram illustrating an example of the update list generator 230 shown in FIG. 2 .
FIG. 4 is a diagram illustrating an example of use of the update list exclusion unit 330 shown in FIG. 3 .
FIG. 5 is a diagram illustrating an example of using the person checking unit 240 shown in FIG. 2 .
FIG. 6 is a block diagram illustrating an example of the event determination unit 140 shown in FIG. 1 .
7 is a block diagram illustrating an example of the collapse event determination unit 620 shown in FIG.
FIG. 8 is a diagram illustrating a time domain for calculating motion intensity in the motion intensity calculator 710 shown in FIG. 7 .
FIG. 9 is a diagram illustrating a posture recognition network, which is a neural network used by the posture recognition unit 730 shown in FIG. 7 .
FIG. 10 is a view showing ten postures used by the posture recognition unit 730 shown in FIG. 7 .
FIG. 11 is a diagram illustrating a feature vector classifier used in the fight event determining unit 630 illustrated in FIG. 6 .
12 is an operation flowchart illustrating an example of a method for detecting abnormal behavior based on a CCTV image according to an embodiment.
13 is an operation flowchart illustrating an example of the step of generating the tracking information list shown in FIG. 12 ( S1230 ).
14 is a diagram showing the configuration of a computer system according to an embodiment.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Advantages and features of the present invention and methods of achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but will be implemented in a variety of different forms, and only these embodiments allow the disclosure of the present invention to be complete, and common knowledge in the technical field to which the present invention belongs It is provided to fully inform the possessor of the scope of the invention, and the present invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout.

비록 "제1" 또는 "제2" 등이 다양한 구성요소를 서술하기 위해서 사용되나, 이러한 구성요소는 상기와 같은 용어에 의해 제한되지 않는다. 상기와 같은 용어는 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용될 수 있다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있다.Although "first" or "second" is used to describe various elements, these elements are not limited by the above terms. Such terms may only be used to distinguish one component from another. Accordingly, the first component mentioned below may be the second component within the spirit of the present invention.

본 명세서에서 사용된 용어는 실시예를 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 또는 "포함하는(comprising)"은 언급된 구성요소 또는 단계가 하나 이상의 다른 구성요소 또는 단계의 존재 또는 추가를 배제하지 않는다는 의미를 내포한다.The terminology used herein is for the purpose of describing the embodiment and is not intended to limit the present invention. As used herein, the singular also includes the plural unless specifically stated otherwise in the phrase. As used herein, “comprises” or “comprising” implies that the stated component or step does not exclude the presence or addition of one or more other components or steps.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 해석될 수 있다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms used herein may be interpreted with meanings commonly understood by those of ordinary skill in the art to which the present invention pertains. In addition, terms defined in a commonly used dictionary are not to be interpreted ideally or excessively unless specifically defined explicitly.

이하에서는, 도 1 내지 도 14를 참조하여 실시예에 따른 CCTV 영상 기반 이상 행동 감지 방법 및 이를 위한 장치가 상세히 설명된다.Hereinafter, a CCTV image-based abnormal behavior detection method and an apparatus therefor according to an embodiment will be described in detail with reference to FIGS. 1 to 14 .

도 1은 실시예에 따른 CCTV 영상 기반 이상 행동 감지 장치(100)의 일 예를 나타낸 블록도이다.1 is a block diagram illustrating an example of an apparatus 100 for detecting abnormal behavior based on a CCTV image according to an embodiment.

도 1을 참조하면, 실시예에 따른 CCTV 영상 기반 이상 행동 감지 장치(100)는 사람 객체 검출부(120), 추적 정보 리스트 생성부(130), 이벤트 판정부(140), 알람 신호 생성부(150)를 포함한다. Referring to FIG. 1 , the CCTV image-based abnormal behavior detection apparatus 100 according to the embodiment includes a human object detection unit 120 , a tracking information list generation unit 130 , an event determination unit 140 , and an alarm signal generation unit 150 . ) is included.

사람 객체 검출부(120)는 CCTV 영상 스트림(110)으로부터 사람 검출 엔진을 이용하여 사람 객체를 검출한다. 추적 정보 리스트 생성부(130)는 검출된 사람 객체의 추적 정보에 기반하여 추적 정보 리스트를 생성한다. 이벤트 판정부(140)는 상기 추적 정보 리스트에 있는 사람에 대하여 이상 행동 이벤트를 판정한다. 알람 신호 생성부(150)는 상기 이상 행동 이벤트에 대해 알람 신호를 생성한다. The human object detection unit 120 detects a human object from the CCTV video stream 110 using a human detection engine. The tracking information list generating unit 130 generates a tracking information list based on the tracking information of the detected human object. The event determination unit 140 determines an abnormal behavior event for a person in the tracking information list. The alarm signal generator 150 generates an alarm signal for the abnormal behavior event.

사람 객체 검출부(120)와 추적 정보 리스트 생성부(130)는 CCTV 영상 스트림을 입력으로 하여 화면상에 나타나는 사람을 출현 시점부터 화면 밖으로 사라질 때까지 안정적으로 추적하는 기능을 수행한다. 여기서 검출 및 추적된 사람의 정보는 추적 정보 리스트로 관리되면서 영상 스트림 상의 다음 프레임을 처리하기 위한 정보로 활용된다. 상기 추적 정보 리스트에는 사람이 출현한 시점부터 현재까지의 궤적, 각 프레임에서의 모션(Motion) 강도 등의 정보를 포함하고 있으며, 상기 정보는 이벤트 판정부(140)로 전달되어 각 이벤트에 대한 판정을 내리는 근거로 활용될 수 있다. The human object detection unit 120 and the tracking information list generation unit 130 perform a function of stably tracking a person appearing on the screen from the time of appearance until disappearing out of the screen by receiving the CCTV video stream as an input. Here, the detected and tracked person information is used as information for processing the next frame on the video stream while being managed as a tracking information list. The tracking information list includes information such as the trajectory from the time the person appeared to the present, the motion intensity in each frame, and the like, and the information is transmitted to the event determination unit 140 to determine each event. It can be used as a basis for lowering

사람 객체 검출부(120)는 다양한 사람 검출 엔진을 활용할 수 있다. 상기 사람 검출 엔진은 최근 인공 지능 기술의 발달에 힘입어 딥러닝 기술을 활용할 수 있는데, Ada Boost와 같은 기존 검출 엔진의 성능을 크게 향상시킨 방법뿐 아니라, YOLO(You Only Look Once) 기술을 사용할 수도 있다. 이상과 같은 딥러닝 기술을 활용한 사람 검출 엔진의 성능이 매우 향상되기는 하였으나, 오검출(사람이 아닌데 사람으로 검출함) 또는 미검출(사람인데 검출을 못함)의 확률은 여전히 낮지 않다. 따라서 본 발명에서는 이와 같은 오검출과 미검출의 문제를 해결하면서도 실시간 처리가 가능하기 위해서는 계산량이 적은 방법을 제안한다. 본 발명의 실시예에 따르면, 단일 영상의 정보뿐 아니라 시간에 따른 변화정보를 기반으로 사람을 빠르고 정확하게 검출할 수 있다. The human object detection unit 120 may utilize various human detection engines. The human detection engine can utilize deep learning technology thanks to the recent development of artificial intelligence technology. have. Although the performance of the human detection engine using the deep learning technology as described above has been greatly improved, the probability of erroneous detection (detecting as a human instead of a human) or non-detecting (not detecting a human being) is still not low. Therefore, the present invention proposes a method with a small amount of calculation in order to enable real-time processing while solving the problems of false detection and non-detection. According to an embodiment of the present invention, it is possible to quickly and accurately detect a person based not only on information on a single image but also on information about changes over time.

추적 정보 리스트 생성부(130)는 상기 영상의 이전 프레임의 추적 정보 리스트를 관리리스트로 저장하고, 상기 영상의 현재 프레임에서 검출된 사람 객체의 리스트를 검출리스트에 저장하며, 상기 관리리스트와 상기 검출리스트를 비교하여 업데이트 리스트를 생성한다. 그리고 상기 업데이트 리스트에 포함되어 있는 사람 객체의 이동속도에 기반하여 상기 사람 객체가 사람인지 확인하고, 기준 영상과 현재 영상을 비교하여 상기 사람이 화면에서 이탈한 것인지 확인할 수 있다. The tracking information list generating unit 130 stores the tracking information list of the previous frame of the image as a management list, stores a list of human objects detected in the current frame of the image in the detection list, the management list and the detection Compare the list to create an update list. In addition, based on the moving speed of the human object included in the update list, it may be determined whether the human object is a person, and a reference image and a current image may be compared to determine whether the person has departed from the screen.

상기 추적 정보 리스트 생성부(130)가 상기 업데이트 리스트를 생성하는 동작을 수행하기 위하여 상기 관리리스트와 검출리스트 모두에 들어 있는 사람 객체의 리스트를 업데이트 리스트로 저장하고, 상기 관리리스트에는 없고 상기 검출리스트에만 들어 있는 사람 객체의 리스트를 상기 업데이트 리스트에 추가한다. 그리고 상기 추적 정보 리스트 생성부(130)는 상기 검출리스트에는 없고 상기 관리리스트에만 들어 있는 사람 객체의 리스트에 대하여 사람 추적 알고리즘을 사용하여 사람 추적 기능을 수행하고, 상기 사람 추적 기능을 수행하여 얻은 정보를 기반으로 상기 업데이트 리스트에서 제외하는 동작을 수행할 수 있다. In order for the tracking information list generating unit 130 to generate the update list, a list of human objects included in both the management list and the detection list is stored as an update list, and the detection list is not in the management list. A list of human objects contained only in . is added to the update list. In addition, the tracking information list generating unit 130 performs a person tracking function using a person tracking algorithm for a list of person objects that are not in the detection list and are included only in the management list, and information obtained by performing the person tracking function An operation of excluding from the update list may be performed based on .

예를 들어, 사람 검출 엔진이 검출한 사람 정보 리스트인 검출리스트의 사람 객체의 리스트를 Pd로 표시하고, 이전 프레임에서부터 관리해 온 사람의 추적 정보 리스트인 관리리스트의 사람 객체의 리스트를 Po로 표시하여 아래에서 자세히 설명한다. 상기 관리리스트와 검출리스트는 사람 객체의 리스트뿐만 아니라 상기 사람 객체 각각에 대한 정보, 즉 그 사람 객체가 처음으로 영상에 나타나 현재에 이르기까지의 궤적 및 특징에 관한 이력정보 등이 포함되어 있을 수 있다.For example, the list of person objects in the detection list, which is the person information list detected by the person detection engine, is displayed as Pd, and the list of person objects in the management list, which is the tracking information list of people managed from the previous frame, is displayed as Po. It will be described in detail below. The management list and the detection list may include not only a list of human objects, but also information about each of the human objects, that is, history information about the trajectory and characteristics of the person object from appearing for the first time in the image to the present. .

'Pd ∩ Po'는 상기 검출리스트의 사람 객체 리스트와 관리리스트의 사람 객체리스트가 겹쳐지는 경우로, 이전 영상까지 추적하던 사람이 이번 프레임에서도 다시 검출되었음을 의미한다. 이는 사람이 정상적으로 추적, 검출되고 있는 경우로그대로 업데이트 리스트에 포함시키면 된다. 'Pd ∩ Po' is a case in which the human object list in the detection list overlaps the human object list in the management list, and it means that the person who has been tracking up to the previous image is detected again in this frame. This can be included in the update list as a log if a person is being tracked and detected normally.

'(Pd ∪ Po) - Po'는 상기 검출리스트의 사람 객체 리스트가 상기 관리리스트의 사람 객체 리스트와 겹치지 않는 경우로, 이번 프레임에서 사람 객체가 새로이 검출되었음을 의미한다. 이 경우 실제 영상에서 새로운 사람 객체가 출현하였을 수도 있고, 다른 객체가 오검출되었을 수도 있지만, 우선은 사람 객체가 출현하였음을 가정하고 상기 업데이트 리스트에 새로운 사람 리스트를 생성하여 추가하는 것이다. '(Pd ∪ Po) - Po' is a case in which the human object list of the detection list does not overlap the human object list of the management list, meaning that a human object is newly detected in this frame. In this case, a new person object may have appeared in the actual image, or another object may have been erroneously detected. First, it is assumed that the human object has appeared, and a new person list is created and added to the update list.

'(Pd ∪ Po) - Pd'는 상기 관리리스트의 사람 객체 리스트가 상기 검출리스트의 사람 객체 리스트와 겹치지 않는 경우로, 영상의 이전 프레임까지 추적하고 있던 사람 객체가 현재 프레임에서는 검출되지 않았음을 의미한다. 이 경우 실제로 추적하던 사람 객체가 영상 바깥으로 나가 이탈한 것일 수도 있고, 영상 조건의 변화로 사람 검출 엔진이 검출에 실패한 경우일 수도 있다. 따라서 이 경우에는 이전 프레임의 정보를 이용하여 사람 추적 기능을 수행하여 현재 프레임에 해당하는 사람이 있을 것으로 예상되는 위치를 추정하게 된다. '(Pd ∪ Po) - Pd' indicates that the human object list of the management list does not overlap the human object list of the detection list, indicating that the human object that was being tracked until the previous frame of the image was not detected in the current frame. it means. In this case, it may be that the human object that was actually tracked went out of the image and deviated, or the human detection engine failed to detect it due to a change in image conditions. Therefore, in this case, a person tracking function is performed using the information of the previous frame to estimate the expected location of the person corresponding to the current frame.

상기 사람 추적 기능은 상기 사람 객체 검출부(120)와 상기 추적 정보 리스트 생성부(130)의 안정성 확보를 위해 매우 중요한 기능이다. 상기 사람 추적 기능은 Computer Vision 분야에서 이미 널리 연구되고 있는 기술로, Particle Filtering을 비롯한 선진적인 기술들도 많이 개발되어 있으나, 우선 이런 기술들은 상당한 수준의 계산량을 필요로 하기 때문에 실시간 감시 방법에 사용하는 것은 적절하지 않다. 또한 기존의 추적 기술은 일반적으로 사람의 옷 색깔등의 컬러 정보를 가지고 추적하는 방법을 사용하는데, 야간이나 흐린 날씨의 영상은 거의 흑백에 가까운 영상이기 때문에 상기 컬러 정보가 사라져 상기 추적 기술이 제대로 동작하지 않게 된다. The person tracking function is a very important function for securing the stability of the human object detection unit 120 and the tracking information list generation unit 130 . The human tracking function is a technology that has already been widely studied in the field of computer vision, and many advanced technologies, including particle filtering, have been developed. it is not appropriate In addition, the existing tracking technology generally uses a method of tracking with color information such as the color of a person's clothes. Since the image at night or cloudy weather is almost black and white, the color information disappears and the tracking technology operates properly. won't do it

따라서 이상과 같은 기존의 추적 기술의 문제점을 해결하기 위하여 본발명의사람 추적 기능은 우선 Mean Shift Tracking이라는 Hill Climbing 방식의 매우 단순한 알고리즘을 사용한다. 그리고 상기 Hill Climbing의 대상이 되는 Probability Image를 일반적으로 컬러 정보를 표현하는데 적합한 Histogram Back Projection 방식을 사용하지 않고, CCTV의 시야가 고정되어 있다는 점에 착안하여 Background Subtraction Image를 사용한다. 여기서 Probability Image는 추적 대상이 있는 곳은 밝게 표현되고, 그렇지 않은 부분은 어둡게 표현된 영상을 말한다. Therefore, in order to solve the problems of the existing tracking technology as described above, the person tracking function of the present invention first uses a very simple algorithm of the Hill Climbing method called Mean Shift Tracking. In addition, the Histogram Back Projection method suitable for expressing color information is not generally used for the Probability Image, which is the target of the Hill Climbing, but a Background Subtraction Image is used based on the fact that the field of view of the CCTV is fixed. Here, the Probability Image refers to an image in which the area where the tracking target is located is brightly expressed, and the area where the tracking target is not is darkened.

이후, 상기 추적 정보 리스트 생성부(130)는 상기 업데이트 리스트의 사람 객체의 이동 속도를 계산하고, 상기 이동 속도가 사람의 이동 속도로 지정된 범위 안에 있는 경우는 상기 사람 객체를 사람으로 확인하는 동작을 수행할 수 있다. 그리고 사람으로 확인되지 않은 상기 사람 객체를 상기 업데이트 리스트에서 제외하는 동작을 수행할 수 있다. 즉, 상기 추적 정보 리스트 생성부(130)는 상기 업데이트 리스트의 사람 객체가 오검출에 의하여 잘못 생성된 것이 아닌지를 확인하는 작업을 수행하는 것이다. Thereafter, the tracking information list generating unit 130 calculates the moving speed of the person object in the updated list, and when the moving speed is within a range designated as the moving speed of the person, the operation of identifying the person object as a person is performed. can be done In addition, an operation of excluding the person object, which is not identified as a person, from the update list may be performed. That is, the tracking information list generating unit 130 checks whether the human object in the updated list is erroneously created due to erroneous detection.

일반적으로 CCTV 환경에서 카메라는 고정되어 있다고 볼 때, 사람이 화면에 처음으로 등장하는 시점에서부터 사람은 이동을 하고 있다고 가정할 수 있다. 그리고 상기 이동속도는 사람이 걷거나 뛰어서 이동할 수 있는 속도의 범위 내에 있을 것이다. 따라서 상기 추적 정보 리스트 생성부는 상기 업데이트 리스트의 각 사람 객체가 가지고 있는 위치 정보의 이력을 평가함으로써 검출된 존재가 정말로 사람인지를 판단한다.In general, assuming that the camera is fixed in the CCTV environment, it can be assumed that the person is moving from the time the person first appears on the screen. And the moving speed will be within the range of the speed at which a person can move by walking or running. Accordingly, the tracking information list generator determines whether the detected existence is really a person by evaluating the history of location information of each person object in the updated list.

이동속도가 매우 느린 경우는 거의 움직임이 없는 경우로 사람이 아닌 고정된 객체(object)를 사람으로 잘못 판단하여 검출된 경우이고, 반대로 이동속도가 매우 빠른 경우는 하늘을 나는 새와 같이 빠르게 이동한 객체를 사람으로 잘못 판단한 경우라고 할 수 있다.If the moving speed is very slow, there is almost no movement, and it is a case that a fixed object other than a person is mistakenly detected as a person. It can be said that the object is incorrectly judged as a person.

이동 속도의 평가는 특정한 사람 pi가 관리하고 있는 이력으로부터 최근의 N 프레임동안의 화소 단위의 이동거리 D, 이동시간 T를 계산하고, 상기 사람 pi의 화소단위의 세로 길이 H를 구한다. 그리고 상기 사람의 평균적인 키를 1.7m 정도라고 추정하여 다음의 수학식 1과 같이 상기 사람의 이동 속도 V를 계산할 수 있다.To evaluate the moving speed, the moving distance D and the moving time T in units of pixels during the last N frames are calculated from the history managed by the specific person pi, and the vertical length H in pixels of the person pi is calculated. In addition, by estimating the average height of the person to be about 1.7 m, the movement speed V of the person may be calculated as in Equation 1 below.

Figure pat00001
Figure pat00001

여기서 V는 사람의 이동속도, D는 사람의 화소 단위의 이동거리, H는 사람의화소 단위의 세로 길이, T는 사람의 이동시간을 말한다.Here, V is the movement speed of a person, D is the movement distance in pixels of a person, H is the vertical length of a person in pixels, and T is the movement time of the person.

이렇게 계산된 이동 속도가 지정된 범위 밖에 있는 경우, 상기 사람 pi는 사람이 아니라고 판단하여 상기 업데이트 리스트에서 제거하고, 이 동작을 상기 업데이트 리스트에 있는 모든 사람 객체에 대하여 진행한다. 상기 동작이 모두 완료되면 상기 업데이트 리스트에 남아 있는 사람 객체들은 모두 사람으로 확인되는 것이다. When the calculated movement speed is outside the specified range, it is determined that the person pi is not a person, and is removed from the updated list, and this operation is performed for all human objects in the updated list. When all of the above operations are completed, all of the human objects remaining in the update list are identified as people.

또한, 상기 추적 정보 리스트 생성부(130)는 상기 영상 내에 사람이 전혀 포함되어 있지 않은 기준 영상을 저장하고, 상기 기준 영상과 현재 영상을 비교하여 차이값을 저장할 수 있다. 그리고 상기 차이값을 기반으로 상기 업데이트 리스트의 사람이 화면에서 이탈한 것인지 여부를 판단하고, 화면에서 이탈한 사람을 상기 업데이트 리스트에서 제외할 수 있다. 마지막으로 화면에서 이탈한 사람이 제외된 상기 업데이트 리스트를 추적 정보 리스트로 저장할 수 있다. Also, the tracking information list generator 130 may store a reference image in which no person is included in the image, compare the reference image with the current image, and store a difference value. In addition, based on the difference value, it may be determined whether the person in the update list leaves the screen, and the person who leaves the screen may be excluded from the update list. Finally, the updated list in which a person who has left the screen is excluded may be stored as a tracking information list.

사람이 화면 밖으로 사라지면 당연히 사람 검출 엔진은 사람을 검출하지 못하게 된다. 앞서 설명한 사람 추적 기능을 수행하여 사람이 화면 밖으로 이탈한 것인지 확인할 수 있지만, 문제는 이것이 사람이 사라진 경우인지, 사람 검출 엔진이 사람 검출에 실패한 경우인지를 파악하기가 쉽지 않다는 점이다. If the person disappears from the screen, of course, the person detection engine will not be able to detect the person. The person tracking function described above can be performed to check whether a person has moved off the screen, but the problem is that it is not easy to determine whether the person has disappeared or the person detection engine has failed to detect the person.

이를 극복하기 위하여 상기 추적 정보 리스트 생성부는 Background Subtraction 영상을 활용한다. Background Subtraction 영상은 기준이 되는 기준 영상과 현재 영상과의 Difference 영상을 말하는데, 만약 본래의 기준 영상에는 없었던 객체가 현재 영상에 나타난 경우 그 영역에서의 차이값이 커지게 된다. 원래 기준 영상에는 사람이 존재하지 않기 때문에 현재 영상에 사람이 존재한다면 그 차이값이 크고, 반대로 사람이 사라져 버린 경우에는 차이값이 작아진다. 따라서 상기 차이값이 어느 정해진 값 이하로 작고, 사람 검출 엔진이 일정 회수 이상 사람 검출에 실패하게 되면, 사람이 영상에서 빠져나간 것으로 보고 이 사람을 상기 업데이트 리스트에서 제거하는 것이다. To overcome this, the tracking information list generator utilizes a background subtraction image. The background subtraction image refers to a difference image between the reference image and the current image. If an object that was not in the original reference image appears in the current image, the difference value in the region increases. Since there is no person in the original reference image, if a person is present in the current image, the difference value is large, and if the person disappears, the difference value is small. Accordingly, if the difference value is less than a predetermined value and the human detection engine fails to detect a person more than a predetermined number of times, the person is deemed to have left the video and the person is removed from the update list.

이때 Background Subtraction을 수행하기 위한 기준 영상은 실제로 카메라의 미세한 움직임이나, 날씨의 변화로 인한 조명 상황의 변화 등으로 시간이 흐름에 따라 변화하게 되므로, 일정 시간 간격으로 업데이트하는 것이 바람직하다. 다만 사람이 있는 경우에 업데이트할 경우, 사람까지 기준 영상에 포함되어 버리게 되므로, 상기 관리리스트(이전 프레임의 추적 정보 리스트)가 비어 있을 경우에만 기준 영상을 업데이트할 수 있다. In this case, since the reference image for performing the background subtraction actually changes over time due to minute movements of the camera or changes in lighting conditions due to changes in weather, it is preferable to update them at regular intervals. However, when updating when there is a person, the reference image can be updated only when the management list (the tracking information list of the previous frame) is empty, because even people are included in the reference image.

이상과 같이 이탈한 사람을 상기 업데이트 리스트에서 모두 제거하고 나면, 상기 업데이트 리스트의 사람을 대상으로 이후 이벤트 판정부(140)에서 사용할 특징들을 추출한다. 이 특징에는 현재 그 사람의 영역을 나타내는 사각형, 그 사각형 내에서의 Frame Difference Image의 강도 및 Background Subtraction Image의 강도 등을 포함할 수 있다.As described above, after removing all the deviated persons from the update list, features to be used in the event determination unit 140 are extracted from the persons in the updated list. This characteristic may include a rectangle indicating the current area of the person, the intensity of the Frame Difference Image and the intensity of the Background Subtraction Image within the rectangle.

이렇게 특징 추출까지 끝나고 나면 상기 업데이트 리스트를 추적 정보 리스트로 저장하고, 상기 추적 정보 리스트는 다음 프레임을 처리할 때 관리리스트인 Po로 사용되게 된다.After the feature extraction is finished, the update list is stored as a tracking information list, and the tracking information list is used as a management list Po when processing the next frame.

이벤트 판정부(140)는 이상 상황을 나타내는 배회침입 이벤트, 쓰러짐 이벤트, 및 싸움 이벤트를 판정할 수 있다. The event determination unit 140 may determine a wandering intrusion event, a falling event, and a fighting event indicating an abnormal situation.

상기 이벤트 판정부(140)가 배회침입 이벤트를 판정하기 위하여 상기 추적 정보 리스트에 포함되어 있는 사람이 침입 감시 영역 내에 들어가면 침입 이벤트를 발생시키고, 상기 사람이 배회 감시 영역 내에 들어가 일정한 시간 이상 머무르면 배회 이벤트를 발생시킨다. In order for the event determination unit 140 to determine a roaming intrusion event, when a person included in the tracking information list enters the intrusion monitoring area, an intrusion event is generated, and when the person enters the wandering monitoring area and stays for a certain period of time or more, a wandering event causes

즉, 상기 이벤트 판정부(140)는 상기 추적 정보 리스트에 포함되어 있는 사람을 대상으로, 사람이 미리 지정되어 있는 영역 내에 들어 가는가를 평가하는 것이다. 그리고 사람을 나타내는 사각형 영역이 지정된 침입 감시 영역 내에 들어갔을 경우에는 침입 이벤트를 발생하게 되고, 배회 감시 영역에 들어 갔을 경우에는 상기 배회 감시 영역에 들어간 이후 정해진 시간 이상 그 안에 머무르는 경우 배회 이벤트를 발생시키는 것이다. That is, the event determination unit 140 evaluates whether a person enters a pre-designated area for a person included in the tracking information list. And when the rectangular area representing a person enters the designated intrusion monitoring area, an intrusion event is generated. will be.

상기 이벤트 판정부(140)가 쓰러짐 이벤트를 판정하기 위하여 상기 추적 정보 리스트에 포함되어 있는 사람에 대해 연속한 두 개의 일정한 시간 구간에서 모션 강도를 계산하고, 상기 두 개의 모션 강도를 비교하여 쓰러짐 이벤트 후보를 생성시킨다. 그리고 상기 쓰러짐 이벤트 후보의 자세를 신경망을 이용하여 인식하고, 상기 쓰러짐 이벤트 후보의 인식된 자세 중 쓰러짐으로 정의된 자세가 정해진 횟수 이상 발생한 경우, 쓰러짐 이벤트를 발생시키게 된다. The event determination unit 140 calculates the motion intensity in two consecutive time intervals for a person included in the tracking information list in order to determine the fall event, and compares the two motion intensity to be a fall event candidate creates Then, the posture of the fall event candidate is recognized using a neural network, and when the posture defined as a fall among the recognized postures of the fall event candidate occurs more than a predetermined number of times, a fall event is generated.

상기 이벤트 판정부(140)가 화면상에 출현한 사람이 갑자기 쓰러진 경우를 판단하기 위하여 기본적으로는 추적 중이던 사람이 갑자기 움직임을 멈춘 상태가 지속되는 영역을 찾을 수 있다. 그러나 길을 걷던 사람이 제 자리에 서 버리는 경우라든지, 쭈그리고 앉는 등의 경우에도 동일한 특성이 나타날 수 있으므로, 최종적인 상태에서 사람의 자세를 확인하여 정말로 쓰러짐 이벤트가 발생한 것인지를 확인하는 과정을 거치는 것이 바람직하다. In order for the event determination unit 140 to determine a case in which a person who appears on the screen suddenly collapses, basically, a region in which the person being tracked suddenly stops moving can be found. However, since the same characteristics may appear in the case of a person walking down the street standing up or squatting, etc., it is better to go through the process of checking the person's posture in the final state and confirming whether a fall event has really occurred. desirable.

우선 사람이 갑자기 움직임을 멈추는 상태를 검출하기 위하여 각 사람의 궤적 정보 중 최근 2N개의 프레임 중 t=t-2N부터 t=t-N까지의 영역을 R1, t=t-N부터 t=t0까지의 영역을 R2로 나누어 두개의 영역에서의 모션(motion)의 강도를 추출한다.First, in order to detect a state in which a person abruptly stops moving, the region from t=t -2N to t=t -N among the last 2N frames of each person's trajectory information is R1, t=t -N to t=t 0 area up to Divide by R2 to extract the intensity of motion in two regions.

R1에서의 모션 강도를 m1, R2에서의 모션 강도를 m2라고 했을 때, 정상적으로 움직이던 사람이 t=t-N 이후의 시점에 갑자기 쓰러져 움직임을 멈추게 된다면, m1은 큰 값을 가지게 되고, m2는 작은 값을 가지게 될 것이다. 따라서, m1/m2이 임계값(thratio)보다 크고, m1은 임계값(thmin)보다 크며, m2는 임계값(thmax)보다 작다는 조건을 만족하는 경우에는 t-N 시점에 쓰러짐 이벤트가 일어났다고 판단할 수 있다. 상기 thratio, thmin, thmax 는 사용자나 시스템에 의해 정해진 값이다. Assuming that the motion intensity in R1 is m1 and the motion intensity in R2 is m2, if a person who was moving normally suddenly collapses and stops moving after t=t -N , m1 has a large value, and m2 is will have a small value. Therefore, if the condition that m1/m2 is greater than the threshold value (th ratio ), m1 is greater than the threshold value (th min ), and m2 is less than the threshold value (th max ) is satisfied, the collapse event at time t -N can be considered to have occurred. The th ratio , th min , th max is a value set by the user or system.

다만 쓰러지는데 걸리는 시간, 쓰러진 후에도 움직임이 없는 정지상태로 이행하기까지의 시간 등이 있는 것을 감안하여, 상기 조건을 만족하는 경우에는 카운터(counter)를 증가시키고, 상기 조건을 만족하지 못하는 경우에는 상기 카운터를 감소시켜, 최종적으로 카운터가 정해진 횟수(thcount)를 넘어서는 시점에 쓰러짐 이벤트의 후보가 발생했다고 판정을 내릴 수 있다.However, in consideration of the time it takes to fall down and the time it takes to transition to a stationary state with no movement after falling, the counter is incremented if the above conditions are satisfied, and if the above conditions are not met, the above By decrementing the counter, it can be determined that a candidate for the falling event has occurred when the counter finally exceeds a predetermined number of times (th count ).

또한 상기 쓰러짐 이벤트 후보 중에는 배회의 경우에서처럼 걷던 사람이 화면상에서 멈춰서거나, 쭈그리고 앉는 경우와 같이 사람의 움직임이 중지되는 경우도 포함된다. 따라서 이러한 경우를 배제하기 위해서는 최종적인 상태, 즉 t=t0 이후의 시점에 사람의 자세가 서거나 앉아 있는 상태가 아니라 쓰러진 상태라는 걸 확인할 필요가 있다.Also, among the fall event candidates, a case in which a person's movement is stopped, such as when a walking person stops on the screen or squats down as in the case of wandering, is included. Therefore, in order to exclude such a case, it is necessary to confirm that the final state, that is, the posture of the person at the time point after t = t 0 is a collapsed state, not a standing or sitting state.

이러한 상기 쓰러짐 이벤트 후보의 자세를 인식하기 위하여 상기 이벤트 판정부(140)는 Deep 신경망으로 구성된 자세 인식 네트워크를 사용한다. 상기 자세 인식 네트워크는 우선 특징 추출을 위하여 VGG19의 Pre-trained Network를 사용하는데, 상기 VGG19의 특징 추출 결과인 4,096 dimension의 벡터를 Fully Connected Layer를 통하여 128 dimension의 벡터로 바꾸고, 다시 Fully Connected Layer를 통하여 최종적인 10개의 class로 분류하게 된다.In order to recognize the posture of the falling event candidate, the event determination unit 140 uses a posture recognition network composed of a deep neural network. The posture recognition network first uses the pre-trained network of VGG19 for feature extraction, and changes the 4,096 dimension vector, which is the result of feature extraction of VGG19, into a 128 dimension vector through the Fully Connected Layer, and again through the Fully Connected Layer. Finally, it is classified into 10 classes.

상기 자세 인식 네트워크는 약 50,000장의 영상을 이용하여 10가지 자세를 분류하도록 훈련되어 있다. 상기 10가지 자세는 Standing normal, Standing bent, Sitting sofa, Sitting chair, Sitting floor, Sitting squat, Lying face, Lying back, Lying side, Lying crouched 이다. 이 중에서 Lying face, Lying back, Lying side, Lying crouched의 4가지 자세가 쓰러진 상태의 자세이므로, 상기 4가지 자세가 정해진 횟수 이상 검출된 경우, 최종적으로 쓰러짐 이벤트가 발생한 것으로 판단할 수 있다. The posture recognition network is trained to classify 10 postures using about 50,000 images. The 10 postures are Standing normal, Standing bent, Sitting sofa, Sitting chair, Sitting floor, Sitting squat, Lying face, Lying back, Lying side, Lying crouched. Among them, since the four postures of the Lying face, Lying back, Lying side, and Lying crouched are the postures in the collapsed state, when the four postures are detected more than a predetermined number of times, it can be determined that a collapse event has finally occurred.

상기 이벤트 판정부가 싸움 이벤트를 판정하기 위하여 상기 추적 정보 리스트에 포함되어 있는 사람에 대하여 싸움 특징을 벡터 형태로 추출하여 추출된 특징 벡터를 생성하고, 상기 추출된 특징 벡터로부터 특징 벡터 분류기를 이용하여 싸움 이벤트를 발생할 수 있다. In order to determine the fighting event, the event determination unit extracts the fighting characteristics of the person included in the tracking information list in a vector form to generate an extracted characteristic vector, and fights using a characteristic vector classifier from the extracted characteristic vector. events can occur.

일반적으로 싸움에는 격렬한 모션이 수반되므로 모션의 강도 측정을 통하여 싸움을 판정할 수 있다. 그러나 싸움이 아니어도 복수의 사람이 빠르게 움직이는 장면 등에서는 그와 유사한 특징이 발생할 수 있다는 점을 고려해야 한다. 따라서 모션 강도는 물론, 사람과 사람 사이의 거리, 위치 관계의 변화 등 싸움에 수반되는 여러 특징을 아래 표 1의 벡터 형태로 추출한 후, 특징 벡터 분류기를 통하여 싸움 이벤트를 검출하는 방법을 사용한다. 하기 표 1의 싸움을 검출하기 위한 특징 벡터들은 각 사람에 대한 추적 정보 중 최근의 K개의 프레임의 추적 정보를 대상으로 구하게 된다.In general, a fight is accompanied by intense motion, so a fight can be determined by measuring the intensity of the motion. However, it should be taken into account that similar characteristics may occur in scenes where multiple people move quickly, even if not in a fight. Therefore, after extracting various features accompanying a fight, such as motion intensity, distance between people, and changes in positional relationship, in the form of vectors shown in Table 1 below, a method of detecting a fight event through a feature vector classifier is used. Feature vectors for detecting a fight in Table 1 below are obtained from tracking information of the most recent K frames among tracking information for each person.

특징량characteristic quantity 싸움 이벤트와의 관계에 관한 설명Description of the relationship with the fight event Average MovementAverage Movement 싸움이 일어나고 있을 경우, 사람들의 움직임이 격렬해 지므로 당연히 Movement (사람 영역에서의 Frame 간의 Difference 강도)가 강해진다.When a fight is taking place, the movement of people becomes intense, so naturally, the movement (strength of the difference between frames in the human domain) becomes stronger. Min Aspect Ratio / Max Aspect RatioMin Aspect Ratio / Max Aspect Ratio 싸움이 일어나는 상태에서는 팔을 뻗거나, 다리를 뻗는 등의 격렬한 동작으로 인하여 사람을 나타내는 사각형의 Aspect Ratio가 변화하게 된다. 따라서 그냥 걸어갈 때에 비해서 Max와 Min의 차이가 커지게 되고, 이 특징량은 작아지는 경향을 보인다.In a fighting state, the Aspect Ratio of the rectangle representing a person changes due to violent motions such as extending arms or legs. Therefore, compared to just walking, the difference between Max and Min increases, and this feature tends to decrease. Variance of Aspect RatioVariance of Aspect Ratio 위의 Aspect Ratio가 얼마나 많이 변화하는가를 표현한다.It expresses how much the above Aspect Ratio changes. Min Width / Max WidthMin Width / Max Width Aspect Ratio와 유사한 이유로 사람의 위치를 나타내는 Rectangle에도 변화가 커진다.For the same reason as the Aspect Ratio, the Rectangle that represents a person's position also changes significantly. Min Height / Max HeightMin Height / Max Height 위와 동일함Same as above Average Speed in MetersAverage Speed in Meters 사람을 나타내는 위치도 심한 변화를 겪게 되므로 Speed가 올라간다.The position that represents the person also undergoes a severe change, so the speed increases. Variance of X positionVariance of X position 싸움이 일어난 상태에서는 position이 일정한 범위 내에서 자주 변화하는 경향을 보여 (상대와 붙었다 떨어졌다 하는 상황의 변화 발생) Variance가 커지게 된다. In the state of a fight, the position tends to change frequently within a certain range (a change in the situation of sticking with the opponent occurs), and the variance increases. Variance of Y positionVariance of Y position 위와 동일함Same as above Max X position - Min X PositionMax X position - Min X Position 걷거나 뛰는 경우에는 일정한 방향을 향해 움직이므로 monotonous하게 증가하거나 감소하는 경향을 보이는 반면, 싸움 상황에서는 아주 크기 않은 범위 내에서 자주 변화하는 경향을 보인다.When walking or running, it moves in a certain direction, so it tends to increase or decrease monotonously, whereas in a fight situation it tends to change frequently within a very small range. Max Y Position - Min Y PositionMax Y Position - Min Y Position 위와 동일함Same as above

상기 이벤트 판정부가 사용하는 상기 특징 벡터 분류기는 간단한 구조의 Shallow 신경망으로 구성될 수 있다. 즉, 상기 특징 벡터가 싸움에 해당하는지, 기타 정상적인 행동에 해당하는 지를 분류하기 위해서 단순히 Input layer, Hidden Layer, Output layer로 구성된 Shallow 신경망을 사용하는 것이다. The feature vector classifier used by the event determination unit may be configured as a shallow neural network having a simple structure. That is, in order to classify whether the feature vector corresponds to a fight or other normal behavior, a shallow neural network composed of an input layer, a hidden layer, and an output layer is simply used.

이상과 같이 이벤트 판정부에서 배회침입 이벤트, 쓰러짐 이벤트, 및 싸움 이벤트를 판정하고 나면, 알람신호 생성부(150)는 상기 이벤트 판정부(140)의 이벤트 판정 결과에 따라 이상행동 이벤트 알람신호(160)를 생성하게 된다.After determining the roaming intrusion event, the fall event, and the fighting event in the event determination unit as described above, the alarm signal generation unit 150 generates an abnormal behavior event alarm signal 160 according to the event determination result of the event determination unit 140 . ) will be created.

도 2는 도 1에 도시된 추적 정보 리스트 생성부(130)의 일 예를 나타낸 블록도이다. FIG. 2 is a block diagram illustrating an example of the tracking information list generator 130 shown in FIG. 1 .

도 2를 참조하면, 추적 정보 리스트 생성부(130)는 관리리스트 생성부(210), 검출리스트 생성부(220), 업데이트 리스트 생성부(230), 사람 확인부(240), 화면이탈 확인부(250)를 포함할 수 있다. Referring to FIG. 2 , the tracking information list generation unit 130 includes a management list generation unit 210 , a detection list generation unit 220 , an update list generation unit 230 , a person identification unit 240 , and a screen deviation verification unit. 250 may be included.

상기 관리리스트 생성부(210)는 상기 영상의 이전 프레임의 추적 정보 리스트를 관리리스트로 저장한다. 상기 검출리스트 생성부(220)는 상기 영상의 현재 프레임에서 검출된 사람 객체의 리스트를 검출리스트에 저장한다. 상기 업데이트 리스트 생성부(230)는 상기 관리리스트와 상기 검출리스트를 비교하여 업데이트 리스트를 생성한다. 상기 사람 확인부(240)는 상기 업데이트 리스트에 포함되어 있는 사람 객체의 이동속도에 기반하여 사람 객체가 사람인지 확인한다. 상기 화면이탈 확인부(250)는 기준 영상과 현재 영상을 비교하여 상기 사람이 화면에서 이탈한 것인지 확인한다.The management list generation unit 210 stores the tracking information list of the previous frame of the image as a management list. The detection list generator 220 stores a list of human objects detected in the current frame of the image in the detection list. The update list generator 230 compares the management list with the detection list to generate an update list. The person checking unit 240 checks whether the person object is a person based on the moving speed of the person object included in the update list. The screen departure confirmation unit 250 compares the reference image with the current image to confirm whether the person has departed from the screen.

상기 업데이트 리스트 생성부(230)는 상기 관리리스트와 검출리스트 모두에 들어 있는 사람 객체의 리스트를 업데이트 리스트로 저장하고, 상기 관리리스트에는 없고 상기 검출리스트에만 들어 있는 사람 객체의 리스트를 상기 업데이트 리스트에 추가한다. 그리고 상기 업데이트 리스트 생성부(230)는 상기 검출리스트에는 없고 상기 관리리스트에만 들어 있는 사람 객체의 리스트에 대하여 사람 추적 알고리즘을 사용하여 사람 추적 기능을 수행하고, 상기 사람 추적 기능을 수행하여 얻은 정보를 기반으로 상기 업데이트 리스트에서 제외하는 동작을 수행할 수 있다.The update list generator 230 stores a list of human objects included in both the management list and the detection list as an update list, and stores a list of human objects that are not in the management list and are included only in the detection list in the update list. add The update list generator 230 performs a person tracking function using a person tracking algorithm for a list of person objects that are not in the detection list and are included only in the management list, and information obtained by performing the person tracking function Based on this, an operation of excluding from the update list may be performed.

예를 들어, 사람 검출 엔진이 검출한 사람 정보 리스트인 검출리스트의 사람 객체의 리스트를 Pd로 표시하고, 이전 프레임에서부터 관리해 온 사람의 추적 정보 리스트인 관리리스트의 사람 객체의 리스트를 Po로 표시하여 아래에서 자세히 설명한다. For example, the list of person objects in the detection list, which is the person information list detected by the person detection engine, is displayed as Pd, and the list of person objects in the management list, which is the tracking information list of people managed from the previous frame, is displayed as Po. It will be described in detail below.

'Pd ∩ Po'는 상기 검출리스트의 사람 객체 리스트와 관리리스트의 사람 객체리스트가 겹쳐지는 경우로, 이전 영상까지 추적하던 사람이 이번 프레임에서도 다시 검출되었음을 의미하므로 그대로 업데이트 리스트에 포함시키면 된다. '(Pd ∪ Po) - Po'는 상기 검출리스트의 사람 객체 리스트가 상기 관리리스트의 사람 객체 리스트와 겹치지 않는 경우로, 이번 프레임에서 사람 객체가 새로이 검출되었음을 의미하므로 상기 업데이트 리스트에 새로운 사람 리스트를 생성하여 추가하면 된다. 그리고 '(Pd ∪ Po) - Pd'는 상기 관리리스트의 사람 객체 리스트가 상기 검출리스트의 사람 객체 리스트와 겹치지 않는 경우로, 영상의 이전 프레임까지 추적하고 있던 사람 객체가 현재 프레임에서는 검출되지 않았음을 의미하므로 이 경우에는 이전 프레임의 정보를 이용하여 사람 추적 기능을 수행하여 현재 프레임에 해당하는 사람이 있을 것으로 예상되는 위치를 추정하게 된다. 'Pd ∩ Po' is a case in which the human object list of the detection list overlaps the human object list of the management list, and it means that the person who has been tracking up to the previous video is detected again in this frame, so it can be included in the update list as it is. '(Pd ∪ Po) - Po' is a case in which the human object list in the detection list does not overlap the human object list in the management list, and it means that a human object is newly detected in this frame. Just create it and add it. And '(Pd ∪ Po) - Pd' is a case in which the human object list of the management list does not overlap the human object list of the detection list, and the human object that was being tracked until the previous frame of the image was not detected in the current frame. Therefore, in this case, the person tracking function is performed using the information of the previous frame to estimate the location where the person corresponding to the current frame is expected.

여기서 상기 사람 추적 기능은 우선 Mean Shift Tracking이라는 Hill Climbing 방식의 매우 단순한 알고리즘을 사용할 수 있다. 그리고 상기 Hill Climbing의 대상이 되는 Probability Image를 컬러 정보를 표현하는데 적합한 Histogram Back Projection 방식을 사용하지 않고, CCTV의 시야가 고정되어 있다는 점에 착안하여 Background Subtraction Image를 사용할 수 있다. 여기서 Probability Image는 추적 대상이 있는 곳은 밝게 표현되고, 그렇지 않은 부분은 어둡게 표현된 영상을 말한다. Here, the person tracking function may use a very simple algorithm of hill climbing method called mean shift tracking. In addition, the background subtraction image can be used by noting that the field of view of the CCTV is fixed without using the Histogram Back Projection method suitable for expressing color information for the Probability Image, which is the target of the Hill Climbing. Here, the Probability Image refers to an image in which the area where the tracking target is located is brightly expressed, and the area where the tracking target is not is darkened.

이후, 사람 확인부(240)는 상기 업데이트 리스트 생성부(230)가 생성한 상기업데이트 리스트의 사람 객체의 이동 속도를 계산하고, 상기 이동 속도가 사람의 이동 속도로 지정된 범위 안에 있는 경우는 상기 사람 객체를 사람으로 확인하는 동작을 수행할 수 있다. 그리고 사람으로 확인되지 않은 상기 사람 객체를 상기 업데이트 리스트에서 제외하는 동작을 수행할 수 있다. 즉, 상기 사람 확인부(240)는 상기 업데이트 리스트의 사람 객체가 오검출에 의하여 잘못 생성된 것이 아닌지를 확인하는 작업을 수행하는 것이다. Thereafter, the person checking unit 240 calculates the moving speed of the person object in the updated list generated by the update list generating unit 230, and if the moving speed is within a range designated as the moving speed of the person, the person You can perform an action that identifies an object as a person. In addition, an operation of excluding the person object, which is not identified as a person, from the update list may be performed. That is, the person checking unit 240 checks whether or not the person object in the update list is erroneously created due to erroneous detection.

일반적으로 CCTV 환경에서 카메라는 고정되어 있다고 볼 때, 사람이 화면에 처음으로 등장하는 시점에서부터 사람은 이동을 하고 있다고 가정할 수 있다. 그리고 상기 이동속도는 사람이 걷거나 뛰어서 이동할 수 있는 속도의 범위 내에 있을 것이다. 따라서 상기 사람 확인부(240)는 상기 업데이트 리스트의 각 사람 객체가 가지고 있는 위치 정보의 이력을 평가함으로써 검출된 존재가 정말로 사람인지를 판단한다.In general, assuming that the camera is fixed in the CCTV environment, it can be assumed that the person is moving from the time the person first appears on the screen. And the moving speed will be within the range of the speed at which a person can move by walking or running. Accordingly, the person checking unit 240 determines whether the detected existence is really a person by evaluating the history of location information of each person object in the updated list.

이동 속도의 평가는 특정한 사람 pi가 관리하고 있는 이력으로부터 최근의 N 프레임동안의 화소 단위의 이동거리 D, 이동시간 T를 계산하고, 상기 사람 pi의 화소단위의 길이 H를 구한다. 그리고 상기 사람의 평균적인 키를 1.7m 정도라고 추정하여 상기 수학식 1과 같이 상기 사람의 이동 속도 V를 계산할 수 있다. To evaluate the moving speed, the moving distance D and the moving time T in units of pixels for the last N frames are calculated from the history managed by the specific person pi, and the length H in units of pixels of the person pi is calculated. And by estimating that the average height of the person is about 1.7 m, the movement speed V of the person can be calculated as in Equation 1 above.

이렇게 계산된 이동 속도가 지정된 범위 밖에 있는 경우, 상기 사람 pi는 사람이 아니라고 판단하여 상기 업데이트 리스트에서 제거하고, 이 동작을 상기 업데이트 리스트에 있는 모든 사람 객체에 대하여 진행한다. 상기 동작이 모두 완료되면 상기 업데이트 리스트에 남아 있는 사람 객체들은 모두 사람으로 확인되는 것이다. When the calculated movement speed is outside the specified range, it is determined that the person pi is not a person, and is removed from the updated list, and this operation is performed for all human objects in the updated list. When all of the above operations are completed, all of the human objects remaining in the update list are identified as people.

상기 화면이탈 확인부(250)는 상기 영상 내에 사람이 전혀 포함되어 있지 않은 기준 영상을 저장하고, 상기 기준 영상과 현재 영상을 비교하여 차이값을 저장할 수 있다. 그리고 상기 차이값을 기반으로 상기 업데이트 리스트의 사람이 화면에서 이탈한 것인지 여부를 판단하고, 화면에서 이탈한 사람을 상기 업데이트 리스트에서 제외할 수 있다. 마지막으로 화면에서 이탈한 사람이 제외된 상기 업데이트 리스트를 추적 정보 리스트로 저장할 수 있다. The screen departure confirmation unit 250 may store a reference image in which no person is included in the image, compare the reference image with the current image, and store a difference value. In addition, based on the difference value, it may be determined whether the person in the update list leaves the screen, and the person who leaves the screen may be excluded from the update list. Finally, the updated list in which a person who has left the screen is excluded may be stored as a tracking information list.

사람이 화면 밖으로 사라지는 것을 추적하기 위하여 사람 추적기가 작동되어 새로운 추적 영역을 생성하게 된다. 그러나 사람이 사라진 경우인지, 사람 검출 엔진이 사람 검출에 실패한 경우인지를 파악하기가 쉽지 않기 때문에 이를 극복하기 위하여 상기 화면이탈 확인부는 Background Subtraction 영상을 활용한다. Background Subtraction 영상은 기준이 되는 기준 영상과 현재 영상과의 Difference 영상을 말하는데, 만약 본래의 기준 영상에는 없었던 객체가 현재 영상에 나타난 경우 그 영역에서의 차이값이 커지게 된다. 원래 기준 영상에는 사람이 존재하지 않기 때문에 현재 영상에 사람이 존재한다면 그 차이값이 크고, 반대로 사람이 사라져 버린 경우에는 차이값이 작아진다. 따라서 상기 차이값이 어느 정해진 값 이하로 작고, 사람 검출 엔진이 일정 회수 이상 사람 검출에 실패하게 되면, 사람이 영상에서 빠져나간 것으로 보고 이 사람을 상기 업데이트 리스트에서 제거하는 것이다. To track the person disappearing from the screen, the person tracker is activated to create a new tracking area. However, since it is not easy to determine whether a person disappears or a person detection engine fails to detect a person, the screen departure confirmation unit uses a background subtraction image to overcome this. The background subtraction image refers to a difference image between the reference image and the current image. If an object that was not in the original reference image appears in the current image, the difference value in the region increases. Since there is no person in the original reference image, if a person is present in the current image, the difference value is large, and if the person disappears, the difference value is small. Accordingly, if the difference value is less than a predetermined value and the human detection engine fails to detect a person more than a predetermined number of times, the person is deemed to have left the video and the person is removed from the update list.

이때 Background Subtraction을 수행하기 위한 기준 영상은 일정 시간 간격으로 업데이트하는 것이 바람직하다. 다만 사람이 있는 경우에 업데이트할 경우, 사람까지 기준 영상에 포함되어 버리게 되므로, 상기 관리리스트(이전 프레임의 추적 정보 리스트)가 비어 있을 경우에만 기준 영상을 업데이트할 수 있다. In this case, it is preferable to update the reference image for performing the background subtraction at regular time intervals. However, when updating when there is a person, the reference image can be updated only when the management list (the tracking information list of the previous frame) is empty, because even people are included in the reference image.

이상과 같이 이탈한 사람을 상기 업데이트 리스트에서 모두 제거하고 나면, 상기 업데이트 리스트의 사람을 대상으로 이후 이벤트 판정부에서 사용할 특징들을 추출하고, 상기 업데이트 리스트를 추적 정보 리스트로 저장하고, 상기 추적 정보 리스트는 다음 프레임을 처리할 때 관리리스트인 Po로 사용되게 된다.After removing all the people who have departed from the update list as described above, features to be used in the event determination unit are extracted from the people in the update list, and the updated list is stored as a tracking information list, and the tracking information list will be used as the management list Po when processing the next frame.

도 3은 도 2에 도시된 업데이트 리스트 생성부(230)의 일 예를 나타낸 블록도이다. FIG. 3 is a block diagram illustrating an example of the update list generator 230 shown in FIG. 2 .

도 3을 참조하면, 업데이트 리스트 생성부(230)는 업데이트 리스트 저장부(310), 업데이트 리스트 추가부(320), 업데이트 리스트 제외부(330)를 포함할 수 있다. 상기 업데이트 리스트 추가부는 새로운 사람 생성부, 상기 업데이트 리스트 제외부는 사람 추적부로 불릴 수도 있다. Referring to FIG. 3 , the update list generation unit 230 may include an update list storage unit 310 , an update list addition unit 320 , and an update list exclusion unit 330 . The update list adding unit may be referred to as a new person creation unit, and the update list exclusion unit may be referred to as a person tracking unit.

상기 업데이트 리스트 저장부(310)는 상기 관리리스트와 검출리스트 모두에 들어 있는 사람 객체의 리스트를 업데이트 리스트로 저장한다. 상기 업데이트 리스트 추가부(320)는 상기 관리리스트에는 없고 상기 검출리스트에만 들어 있는 사람 객체의 리스트를 상기 업데이트 리스트에 추가한다. 상기 업데이트 리스트 제외부(330)는 상기 검출리스트에는 없고 상기 관리리스트에만 들어 있는 사람 객체의 리스트에 대하여 사람 추적 알고리즘을 사용하여 사람 추적 기능을 수행하고, 상기 사람 추적 기능을 수행하여 얻은 정보를 기반으로 상기 업데이트 리스트에서 제외하는 동작을 수행할 수 있다. The update list storage unit 310 stores a list of human objects included in both the management list and the detection list as an update list. The update list adding unit 320 adds a list of human objects that are not in the management list and are included only in the detection list to the update list. The update list exclusion unit 330 performs a person tracking function using a person tracking algorithm for a list of person objects that are not in the detection list and are included only in the management list, and based on the information obtained by performing the person tracking function to exclude from the update list.

예를 들어, 사람 검출 엔진이 검출한 사람 정보 리스트인 검출리스트의 사람 객체의 리스트를 Pd로 표시하고, 이전 프레임에서부터 관리해 온 사람의 추적 정보 리스트인 관리리스트의 사람 객체의 리스트를 Po로 표시하여 아래에서 자세히 설명한다. For example, the list of person objects in the detection list, which is the person information list detected by the person detection engine, is displayed as Pd, and the list of person objects in the management list, which is the tracking information list of people managed from the previous frame, is displayed as Po. It will be described in detail below.

'Pd ∩ Po'는 상기 검출리스트의 사람 객체 리스트와 관리리스트의 사람 객체리스트가 겹쳐지는 경우로, 이전 영상까지 추적하던 사람이 이번 프레임에서도 다시 검출되었음을 의미한다. 따라서 상기 업데이트 리스트 저장부(310)는'Pd ∩ Po'를 사람이 정상적으로 추적되고 계속해서 검출되고 있는 경우로 생각하고, 그대로 업데이트 리스트에 포함시킬 수 있다. 'Pd ∩ Po' is a case in which the human object list in the detection list overlaps the human object list in the management list, and it means that the person who has been tracking up to the previous image is detected again in this frame. Therefore, the update list storage unit 310 may consider 'Pd ∩ Po' as a case in which a person is normally tracked and continuously detected, and may be included in the update list as it is.

' (Pd ∪ Po) - Po'는 상기 검출리스트의 사람 객체 리스트가 상기 관리리스트의 사람 객체 리스트와 겹치지 않는 경우로, 이번 프레임에서 사람 객체가 새로이 검출되었음을 의미한다. 이 경우 실제 영상에서 새로운 사람 객체가 출현하였을 수도 있고, 사람 객체가 오검출되었을 수도 있다. 따라서 상기 업데이트 리스트 추가부(320)는 ' (Pd ∪ Po) - Po'모두 사람 객체가 출현하였다고 가정하고 상기 업데이트 리스트에 새로운 사람 리스트를 생성하여 추가시킬 수 있다. 그리고 오검출된 경우는 후에 사람 확인부에서 제거하게 된다. '(Pd ∪ Po) - Po' is a case in which the human object list in the detection list does not overlap the human object list in the management list, meaning that a human object is newly detected in this frame. In this case, a new human object may have appeared in the actual image, or the human object may have been erroneously detected. Accordingly, the update list adder 320 may create and add a new person list to the update list, assuming that both '(Pd ∪ Po) - Po' have human objects. In case of erroneous detection, it is later removed by the human identification unit.

' (Pd ∪ Po) - Pd'는 상기 관리리스트의 사람 객체 리스트가 상기 검출리스트의 사람 객체 리스트와 겹치지 않는 경우로, 영상의 이전 프레임까지 추적하고 있던 사람 객체가 현재 프레임에서는 검출되지 않았음을 의미한다. 이 경우 실제로 추적하던 사람 객체가 영상 바깥으로 나가 이탈한 것일 수도 있고, 영상 조건의 변화로 사람 검출 엔진이 검출에 실패한 오검출의 경우일 수도 있다. 따라서 상기 업데이트 리스트 제외부(330)는 ' (Pd ∪ Po) - Pd' 모두에 대하여 이전 프레임의 정보를 이용하여 사람 추적 기능을 수행하여 현재 프레임에 해당하는 사람이 있을 것으로 예상되는 위치를 추정함으로써 오검출된 경우인지 상기 사람 객체가 화면을 이탈한 것인지 알아내고, 상기 업데이트 리스트에서 제외하게 된다. ' (Pd ∪ Po) - Pd' indicates that the human object list of the management list does not overlap the human object list of the detection list, indicating that the human object that was being tracked until the previous frame of the image was not detected in the current frame. it means. In this case, it may be that the human object that was actually tracked went out of the image and deviated, or it could be a case of erroneous detection in which the human detection engine failed to detect due to a change in image conditions. Therefore, the update list exclusion unit 330 performs a person tracking function using the information of the previous frame for all of '(Pd ∪ Po) - Pd' to estimate the location where the person corresponding to the current frame is expected to be. It is determined whether the case is erroneously detected or whether the human object has left the screen, and is excluded from the update list.

상기 업데이트 리스트 제외부(330)의 사람 추적 기능은 사람 추적 기능은 Particle Filtering을 비롯한 선진적인 기술을 사용할 수도 있으나, 우선 이런 기술들은 상당한 수준의 계산량을 필요로 하고, 주로 사람의 옷 색깔등의 컬러 정보를 기준으로 추적하게 되는데, 야간이나 흐린 날씨의 영상에서는 거의 흑백에 가까운 영상이 되어 버리기 때문에 상기 컬러 정보가 사라져 제대로 동작하지 않는 문제점이 있다. The person tracking function of the update list exclusion unit 330 may use advanced technologies such as particle filtering for the person tracking function. Information is tracked based on the information, but since the image becomes almost black and white in an image at night or in cloudy weather, the color information disappears and the image does not operate properly.

따라서 본 발명상의 상기 사람 추적 기능은 우선 Mean Shift Tracking이라는 Hill Climbing 방식의 매우 단순한 알고리즘을 사용하고, 상기 Hill Climbing의 대상이 되는 Probability Image를 CCTV의 시야가 고정되어 있다는 점에 착안하여 Background Subtraction Image를 사용한다.Therefore, the person tracking function according to the present invention uses a very simple algorithm of the hill climbing method called Mean Shift Tracking first, and the background subtraction image is obtained by paying attention to the fact that the field of view of the CCTV is fixed for the Probability Image that is the target of the hill climbing. use.

도 4는 도 3에 도시된 업데이트 리스트 제외부(330)의 활용 예를 나타낸 도면이다.FIG. 4 is a diagram illustrating an example of use of the update list exclusion unit 330 shown in FIG. 3 .

도 4를 참조하여, 업데이트 리스트 제외부(330)의 사람 추적 기능을 활용한 예를 설명한다.An example in which the person tracking function of the update list exclusion unit 330 is utilized will be described with reference to FIG. 4 .

상기 업데이트 리스트 제외부(330)의 사람 추적 기능은 Mean Shift Tracking이라는 Hill Climbing 방식의 매우 단순한 알고리즘을 사용한다. 그리고 상기 Hill Climbing의 대상이 되는 Probability Image를 일반적으로 컬러 정보를 표현하는데 적합한 Histogram Back Projection 방식을 사용하지 않고, CCTV의 시야가 고정되어 있다는 점에 착안하여 Background Subtraction Image를 사용한다. 여기서 Probability Image는 추적 대상이 있는 곳은 밝게 표현되고, 그렇지 않은 부분은 어둡게 표현된 영상을 말한다. The person tracking function of the update list exclusion unit 330 uses a very simple algorithm of Hill Climbing called Mean Shift Tracking. In addition, the Histogram Back Projection method suitable for expressing color information is not generally used for the Probability Image, which is the target of the Hill Climbing, but a Background Subtraction Image is used based on the fact that the field of view of the CCTV is fixed. Here, the Probability Image refers to an image in which the area where the tracking target is located is brightly expressed, and the area where the tracking target is not is darkened.

도 4는 본 발명상의 사람 추적 기능의 우수성을 보여주기 위하여 CCTV의 원영상(410)에서 추적 대상인 사람에 대하여 Histogram Back Projection을 수행한 영상(420)과 Background Subtraction한 영상(430)을 대비하여 보여주고 있다. 4 shows the contrast between the image 420 in which Histogram Back Projection is performed on the person to be tracked in the original image 410 of CCTV and the image 430 in which the background subtraction is performed in order to show the superiority of the person tracking function according to the present invention. are giving

우선, 상기 원영상(410)에서 사람이 가진 컬러 특성이 배경과 크게 다르지 않다. 따라서 Histogram Back Projection을 수행한 영상(420)에서는 사람 영역이 희미하게 나타나 거의 보이지 않는 반면, Back Ground Subtraction을 수행한 영상(430)에서는 훨씬 선명하게 사람 영역이 표시되어 있는 것을 볼 수 있다. First, the color characteristics of a person in the original image 410 are not significantly different from the background. Accordingly, in the image 420 on which the histogram back projection has been performed, the human region appears faintly and is almost invisible, whereas in the image 430 on which the back ground subtraction is performed, the human region is displayed much more clearly.

Mean Shift Tracker는 Probability Map에서 밝은 영역을 Iterative하게 찾아가게 되는데, 본 발명상의 Back Ground Subtraction을 수행한 영상(430)의 사람 영역이 더 선명하게 밝게 표시되기 때문에, 이를 Probability Image로 사용하면 훨씬 더 안정적인 추적이 가능해지는 것이다. The Mean Shift Tracker iteratively finds a bright area on the Probability Map. Since the human area of the image 430 on which the Back Ground Subtraction has been performed according to the present invention is displayed more clearly and brightly, it is much more stable when used as a Probability Image. tracking becomes possible.

그리고 CCTV의 원영상이 흐린 날씨 영상이거나 야간 영상의 경우에는 사람의 컬러 특성이 배경과 거의 같게 나타나기 때문에 Back Ground Subtraction 방식이 Histogram Back Projection 보다 훨씬 더 효과적이게 된다.And in the case of a cloudy weather image or a night image, the color characteristics of a person appear almost the same as the background, so the Back Ground Subtraction method is much more effective than the Histogram Back Projection.

도 5는 도 2에 도시된 사람 확인부(240)의 활용 예를 나타낸 도면이다.FIG. 5 is a diagram illustrating an example of using the person checking unit 240 shown in FIG. 2 .

도 5를 참조하여, 상기 사람 확인부(240)가 사람의 이동 속도를 계산하여 상기 업데이트 리스트의 사람 객체가 오검출에 의하여 잘못 생성된 것이 아닌지를 확인하는 작업을 수행하는 것을 설명한다. Referring to FIG. 5 , it will be described that the person checking unit 240 calculates the movement speed of a person and checks whether the person object in the update list is erroneously created due to erroneous detection.

도 5에 사람이 등장한 영상이 나타나 있고, 검출한 사람 영역(510)이 사각형으로 표시되어 있다. 일반적으로 CCTV 환경에서 카메라는 고정되어 있다고 볼 때, 사람이 화면에 처음으로 등장하는 시점에서부터 사람은 이동을 하고 있다고 가정할 수 있다. 그리고 상기 이동속도는 일반적으로 사람이 걷거나 뛰어서 이동할 수 있는 속도의 범위 내에 있을 것이라고 가정할 수 있다An image in which a person appears is shown in FIG. 5 , and the detected area 510 of the person is indicated by a rectangle. In general, assuming that the camera is fixed in the CCTV environment, it can be assumed that the person is moving from the time the person first appears on the screen. And it can be assumed that the movement speed is generally within the range of the speed that a person can move by walking or running.

상기 검출한 사람 영역(510)내의 사람의 이동 속도는 최근의 N 프레임동안의 화소 단위의 이동거리 D, 이동시간 T를 계산하고, 상기 사람 pi의 화소단위의 길이 H를 구한다. 그리고 상기 사람의 평균적인 키를 1.7m 정도라고 추정하여 상기 수학식 1과 같이 상기 사람의 이동 속도 V를 계산할 수 있다. The movement speed of a person in the detected human area 510 is calculated by calculating a movement distance D and a movement time T in units of pixels during the last N frames, and calculating the length H of the person pi in units of pixels. And by estimating that the average height of the person is about 1.7 m, the movement speed V of the person can be calculated as in Equation 1 above.

이렇게 계산된 이동 속도가 지정된 범위 밖에 있는 경우, 상기 사람은 사람이 아니라고 판단하여 상기 업데이트 리스트에서 제거한다. 일반적으로 이동속도가 매우 느린 경우는 거의 움직임이 없는 경우로 사람이 아닌 고정된 객체(object)를 사람으로 잘못 판단하여 검출된 경우이고, 반대로 이동속도가 매우 빠른 경우는하늘을 나는 새와 같이 빠르게 이동한 객체를 사람으로 잘못 판단한 경우가 된다.When the calculated movement speed is outside the specified range, it is determined that the person is not a person and is removed from the updated list. In general, when the movement speed is very slow, there is almost no movement, and a fixed object, not a person, is mistakenly detected as a person. This may be a case in which the moved object is incorrectly judged as a person.

도 6은 도 1에 도시된 이벤트 판정부(140)의 일 예를 나타낸 블록도이다.FIG. 6 is a block diagram illustrating an example of the event determination unit 140 shown in FIG. 1 .

도 6을 참조하면, 이벤트 판정부(140)는 배회침임 이벤트 판정부(610), 쓰러짐 이벤트 판정부(620), 및 싸움 이벤트 판정부(630)를 포함할 수 있다. Referring to FIG. 6 , the event determining unit 140 may include a roaming invasive event determining unit 610 , a falling event determining unit 620 , and a fighting event determining unit 630 .

상기 배회침입 이벤트 판정부(610)는 추적 정보 리스트 생성부가 생성한 추적 정보 리스트에 포함되어 있는 사람이 침입 감시 영역 내에 들어가면 침입 이벤트를 발생시키고, 상기 사람이 배회 감시 영역 내에 들어가 일정한 시간 이상 머무르면 배회 이벤트를 발생시킬 수 있다. The roaming intrusion event determining unit 610 generates an intrusion event when a person included in the tracking information list generated by the tracking information list generation unit enters the intrusion monitoring area, and when the person enters the wandering monitoring area and stays for more than a certain time, the person wanders event can be generated.

즉, 상기 배회침입 이벤트 판정부(610)는 상기 추적 정보 리스트에 포함되어 있는 사람을 대상으로, 사람이 미리 지정되어 있는 영역 내에 들어 가는가를 평가하는 것이다. 그리고 사람을 나타내는 사각형 영역이 지정된 침입 감시 영역 내에 들어갔을 경우에는 침입 이벤트를 발생하게 되고, 배회 감시 영역에 들어 갔을 경우에는 상기 배회 감시 영역에 들어간 이후 정해진 시간 이상 그 안에 머무르는 경우 배회 이벤트를 발생시키는 것이다. That is, the roaming intrusion event determining unit 610 evaluates whether a person enters a pre-designated area for a person included in the tracking information list. And when the rectangular area representing a person enters the designated intrusion monitoring area, an intrusion event is generated. will be.

상기 쓰러짐 이벤트 판정부(620)는 추적 정보 리스트 생성부가 생성한 상기 추적 정보 리스트에 포함되어 있는 사람에 대해 연속한 두 개의 일정한 시간 구간에서 모션 강도를 계산하고, 상기 두 개의 모션 강도를 비교하여 쓰러짐 이벤트 후보를 생성시킨다. 그리고 상기 쓰러짐 이벤트 후보의 자세를 신경망을 이용하여 인식하고, 상기 쓰러짐 이벤트 후보의 인식된 자세 중 쓰러짐으로 정의된 자세가 정해진 횟수 이상 발생한 경우, 쓰러짐 이벤트를 발생시키게 된다. The falling event determination unit 620 calculates the motion intensity in two consecutive time intervals for a person included in the tracking information list generated by the tracking information list generation unit, and compares the two motion intensities to fall Create event candidates. Then, the posture of the fall event candidate is recognized using a neural network, and when the posture defined as a fall among the recognized postures of the fall event candidate occurs more than a predetermined number of times, a fall event is generated.

상기 쓰러짐 이벤트 판정부(620)는 화면상에 출현한 사람이 갑자기 쓰러진 경우를 판단하기 위하여 기본적으로는 추적 중이던 사람이 갑자기 움직임을 멈춘 상태가 지속되는 영역을 찾을 수 있다. 그러나 길을 걷던 사람이 제 자리에 서 버리는 경우라든지, 쭈그리고 앉는 등의 경우에도 동일한 특성이 나타날 수 있으므로, 최종적인 상태에서 사람의 자세를 확인하여 정말로 쓰러짐 이벤트가 발생한 것인지를 확인하는 과정을 거치는 것이 바람직하다. In order to determine when a person who appears on the screen suddenly collapses, the falling event determining unit 620 may basically find a region where the person being tracked suddenly stops moving. However, since the same characteristics may appear in the case of a person walking down the street standing up or squatting, etc., it is better to go through the process of checking the person's posture in the final state and confirming whether a fall event has really occurred. desirable.

우선 사람이 갑자기 움직임을 멈추는 상태를 검출하기 위하여 각 사람의 궤적 정보 중 최근 2N개의 프레임 중 t=t-2N부터 t=t-N까지의 영역을 R1, t=t-N부터 t=t0까지의 영역을 R2로 나누어 두개의 영역에서의 모션(motion)의 강도를 추출한다.First, in order to detect a state in which a person abruptly stops moving, the region from t=t -2N to t=t -N among the last 2N frames of each person's trajectory information is R1, t=t -N to t=t 0 area up to Divide by R2 to extract the intensity of motion in two regions.

R1에서의 모션 강도를 m1, R2에서의 모션 강도를 m2라고 했을 때, 정상적으로 움직이던 사람이 t=t-N 이후의 시점에 갑자기 쓰러져 움직임을 멈추게 된다면, m1은 큰 값을 가지게 되고, m2는 작은 값을 가지게 될 것이다. 따라서, m1과 m2의 값을 비교하여 m1/m2이 정해진 임계값1보다 크고, m1은 정해진 임계값2보다 크며, m2는 정해진 임계값3보다 작다는 조건을 만족하는 경우에는 t-N 시점에 쓰러짐 이벤트가 일어났다고 판단할 수 있다. 다만 쓰러지는데 걸리는 시간, 쓰러진 후에도 움직임이 없는 정지상태로 이행하기까지의 시간 등이 있는 것을 감안하여, 상기 조건을 만족하는 경우에는 카운터(counter)를 증가시키고, 상기 조건을 만족하지 못하는 경우에는 상기 카운터를 감소시켜, 최종적으로 카운터가 정해진 횟수를 넘어서는 시점에 쓰러짐 이벤트의 후보가 발생했다고 판정을 내릴 수 있다.Assuming that the motion intensity in R1 is m1 and the motion intensity in R2 is m2, if a person who was moving normally suddenly collapses and stops moving after t=t -N , m1 has a large value, and m2 is will have a small value. Thus, m1 is greater than the threshold value 1 by comparing the value of m2 is determined m1 / m2, m1 is the case which satisfies the condition is greater than the predetermined threshold value 2, m2 is smaller than the predetermined threshold value 3, the time t -N It can be determined that a collapse event has occurred. However, in consideration of the time it takes to fall down and the time it takes to transition to a stationary state with no movement after falling, the counter is incremented if the above conditions are satisfied, and if the above conditions are not met, the above By decrementing the counter, it can be determined that a candidate for the collapse event has occurred when the counter finally exceeds the predetermined number of times.

또한 상기 쓰러짐 이벤트 후보 중에는 배회의 경우에서처럼 걷던 사람이 화면상에서 멈춰서거나, 쭈그리고 앉는 경우와 같이 사람의 움직임이 중지되는 경우도 포함된다. 따라서 이러한 경우를 배제하기 위해서는 최종적인 상태, 즉 t=t0 이후의 시점에 사람의 자세가 서거나 앉아 있는 상태가 아니라 쓰러진 상태라는 걸 확인할 필요가 있다.Also, among the fall event candidates, a case in which a person's movement is stopped, such as when a walking person stops on the screen or squats down as in the case of wandering, is included. Therefore, in order to exclude such a case, it is necessary to confirm that the final state, that is, the posture of the person at the time point after t = t 0 is a collapsed state, not a standing or sitting state.

이러한 상기 쓰러짐 이벤트 후보의 자세를 인식하기 위하여 상기 쓰러짐 이벤트 판정부(620)는 Deep 신경망으로 구성된 자세 인식 네트워크를 사용한다. 상기 자세 인식 네트워크는 우선 특징 추출을 위하여 VGG19의 Pre-trained Network를 사용하는데, 상기 VGG19의 특징 추출 결과인 4,096 dimension의 벡터를 Fully Connected Layer를 통하여 128 dimension의 벡터로 바꾸고, 다시 Fully Connected Layer를 통하여 최종적인 10개의 class로 분류하게 된다.In order to recognize the posture of the fall event candidate, the fall event determining unit 620 uses a posture recognition network composed of a deep neural network. The posture recognition network first uses the pre-trained network of VGG19 for feature extraction, and changes the 4,096 dimension vector, which is the result of feature extraction of VGG19, into a 128 dimension vector through the Fully Connected Layer, and again through the Fully Connected Layer. Finally, it is classified into 10 classes.

상기 자세 인식 네트워크는 약 50,000장의 영상을 이용하여 10가지 자세를 분류하도록 훈련되어 있다. 상기 10가지 자세는 Standing normal, Standing bent, Sitting sofa, Sitting chair, Sitting floor, Sitting squat, Lying face, Lying back, Lying side, Lying crouched 이다. 이 중에서 Lying face, Lying back, Lying side, Lying crouched의 4가지 자세가 쓰러진 상태의 자세이므로, 상기 4가지 자세가 정해진 횟수 이상 검출된 경우, 최종적으로 쓰러짐 이벤트가 발생한 것으로 판단할 수 있다. The posture recognition network is trained to classify 10 postures using about 50,000 images. The 10 postures are Standing normal, Standing bent, Sitting sofa, Sitting chair, Sitting floor, Sitting squat, Lying face, Lying back, Lying side, Lying crouched. Among them, since the four postures of the Lying face, Lying back, Lying side, and Lying crouched are the postures in the collapsed state, when the four postures are detected more than a predetermined number of times, it can be determined that a collapse event has finally occurred.

상기 싸움 이벤트 판정부(630)는 상기 추적 정보 리스트 생성부에서 생성한상기 추적 정보 리스트에 포함되어 있는 사람에 대하여 싸움 특징을 벡터 형태로 추출하여 추출된 특징 벡터를 생성하고, 상기 추출된 특징 벡터로부터 특징 벡터 분류기를 이용하여 싸움 이벤트를 발생할 수 있다. The fight event determining unit 630 generates an extracted feature vector by extracting fighting characteristics in a vector form for a person included in the tracking information list generated by the tracking information list generation unit, and from the extracted characteristic vector A fight event can be generated using a feature vector classifier.

싸움에는 격렬한 모션이 수반되므로 모션의 강도 측정을 통하여 싸움을 판정할 수 있다. 그러나 싸움이 아니어도 복수의 사람이 빠르게 움직이는 장면 등에서는 그와 유사한 특징이 발생할 수 있다는 점을 고려해야 한다. 따라서 모션 강도는 물론, 사람과 사람 사이의 거리, 위치 관계의 변화 등 싸움에 수반되는 여러 특징을 상기 표 1의 벡터 형태로 추출한 후, 특징 벡터 분류기를 통하여 싸움 이벤트를 검출하는 방법을 사용한다. 상기 표 1의 특징 벡터들은 각 사람에 대한 추적 정보 중 최근의 K개의 프레임의 추적 정보를 대상으로 구하게 된다.Since a fight entails intense motion, a fight can be judged by measuring the intensity of the motion. However, it should be taken into account that similar characteristics may occur in scenes where multiple people move quickly, even if not in a fight. Therefore, after extracting various features accompanying a fight, such as motion intensity as well as a change in the distance and positional relationship between people, in the vector form of Table 1 above, a method of detecting a fight event through a feature vector classifier is used. The feature vectors of Table 1 are obtained from the tracking information of the latest K frames among the tracking information for each person.

상기 싸움 이벤트 판정부(630)가 사용하는 상기 특징 벡터 분류기는 간단한 구조의 Shallow 신경망으로 구성될 수 있다. 즉, 상기 특징 벡터가 싸움에 해당하는지, 기타 정상적인 행동에 해당하는 지를 분류하기 위해서 단순히 Input layer, Hidden Layer, Output layer로 구성된 Shallow 신경망을 사용하는 것이다. The feature vector classifier used by the fight event determining unit 630 may be configured as a shallow neural network having a simple structure. That is, in order to classify whether the feature vector corresponds to a fight or other normal behavior, a shallow neural network composed of an input layer, a hidden layer, and an output layer is simply used.

이상과 같이 배회침입 이벤트 판정부(610), 쓰러짐 이벤트 판정부(620), 싸움 이벤트 판정부(630)가 각 배회침입 이벤트, 쓰러짐 이벤트 및 싸움 이벤트를 판정한 결과를 다음 단계인 알람신호 생성부로 보내게 된다. 그리고 상기 배회침입 이벤트 판정부(610), 쓰러짐 이벤트 판정부(620), 싸움 이벤트 판정부(630)는 동시에 또는 역순으로 각 이벤트를 판정할 수도 있다.As described above, the result of the roaming intrusion event determining unit 610, the falling event determining unit 620, and the fighting event determining unit 630 determining each of the roaming intrusion events, the falling event and the fighting event is sent to the next step, the alarm signal generation unit. will send And the roaming intrusion event determining unit 610, the falling event determining unit 620, and the fighting event determining unit 630 may determine each event at the same time or in reverse order.

도 7은 도 6에 도시된 쓰러짐 이벤트 판정부(620)의 일 예를 나타낸 블록도이다.7 is a block diagram illustrating an example of the collapse event determination unit 620 shown in FIG.

도 7을 참조하면, 상기 쓰러짐 이벤트 판정부(620)는 모션강도 계산부(710), 쓰러짐 이벤트 후보 생성부(720), 자세 인식부(730), 쓰러짐 이벤트 발생부(740)를 포함할 수 있다. Referring to FIG. 7 , the falling event determination unit 620 may include a motion intensity calculation unit 710 , a falling event candidate generation unit 720 , a posture recognition unit 730 , and a falling event generation unit 740 . have.

상기 모션강도 계산부(710)는 상기 추적 정보 리스트에 포함되어 있는 사람에 대해 연속한 두 개의 일정한 시간 구간에서 모션 강도를 계산한다. 상기 쓰러짐 이벤트 후보 생성부(720)는 상기 두 개의 모션 강도를 비교하여 쓰러짐 이벤트 후보를 생성시킨다. 상기 자세 인식부(730)는 상기 쓰러짐 이벤트 후보의 자세를 신경망을 이용하여 인식한다. 상기 쓰러짐 이벤트 발생부(740)는 상기 쓰러짐 이벤트 후보의 인식된 자세 중 쓰러짐으로 정의된 자세가 정해진 횟수 이상 발생한 경우, 쓰러짐 이벤트를 발생시키게 된다. The motion intensity calculation unit 710 calculates the motion intensity in two consecutive time intervals for the person included in the tracking information list. The falling event candidate generating unit 720 generates a falling event candidate by comparing the two motion intensities. The posture recognition unit 730 recognizes the posture of the falling event candidate using a neural network. The fall event generating unit 740 generates a fall event when the posture defined as a fall among the recognized postures of the fall event candidate occurs more than a predetermined number of times.

상기 쓰러짐 이벤트 판정부는 화면상에 출현한 사람이 갑자기 쓰러진 경우를 판단하는 부분으로 기본적으로는 추적 중이던 사람이 갑자기 움직임을 멈춘 상태가 지속되는 영역을 찾게 되지만, 길을 걷던 사람이 제 자리에 서 버리는 경우라든지, 쭈그리고 앉는 등의 경우에도 동일한 특성이 나타날 수 있으므로, 최종적인 상태에서 사람의 자세를 확인하여 정말로 쓰러짐 이벤트가 발생한 것인지를 확인하는 과정을 거친다.The fall event determination unit is a part that determines when a person who appears on the screen suddenly collapses. Basically, it finds an area where the person being tracked suddenly stops moving, but the person walking on the road stops in place Since the same characteristics may appear in cases such as squatting or squatting, a process of confirming whether a collapse event has actually occurred by checking the posture of the person in the final state is performed.

우선 상기 모션강도 계산부(710)는 사람이 갑자기 움직임을 멈추는 상태를 검출하기 위하여 각 사람의 궤적 정보 중 최근 2N개의 프레임 중 t=t-2N부터 t=t-N까지의 영역을 R1, t=t-N부터 t=t0까지의 영역을 R2로 나누어 두개의 영역에서의 모션의 강도를 추출한다.First, in order to detect a state in which a person abruptly stops moving, the motion intensity calculation unit 710 calculates a region from t = t -2N to t = t -N among the last 2N frames of each person's trajectory information R1, t =t -N to t=t 0 Divide by R2 to extract the intensity of motion in two regions.

R1에서의 모션 강도를 m1, R2에서의 모션 강도를 m2라고 했을 때, 정상적으로 움직이던 사람이 t=t-N 이후의 시점에 갑자기 쓰러지게 된다면, m1은 큰 값을 가지게 되고, m2는 작은 값을 가지게 될 것이다. 따라서, m1/m2이 임계값(thratio)보다 크고, m1은 임계값(thmin)보다 크며, m2는 임계값(thmax)보다 작다는 조건을 만족하는 경우에는 t-N 시점에 쓰러짐 이벤트가 일어났다고 판단할 수 있다. 다만 쓰러지는데 걸리는 시간, 쓰러진 후에도 움직임이 없는 정지상태로 이행하기까지의 시간 등이 있는 것을 감안하여 상기 조건을 만족하는 경우에는 카운터를 증가시키고, 상기 조건을 만족하지 못하는 경우에는 카운터를 감소시켜, 최종적으로 카운터가 정해진 횟수(thcount)를 넘어서는 시점에 쓰러짐 이벤트의 후보가 발생했다고 판정을 내리게 되는 것이다. Assuming that the motion intensity in R1 is m1 and the motion intensity in R2 is m2, if a person who was moving normally suddenly collapses after t=t -N , m1 will have a large value, and m2 will have a small value. will have Therefore, if the condition that m1/m2 is greater than the threshold value (th ratio ), m1 is greater than the threshold value (th min ), and m2 is less than the threshold value (th max ) is satisfied, the collapse event at time t -N can be considered to have occurred. However, taking into account the time it takes to fall down and the time it takes to transition to a motionless state after falling down, if the above conditions are satisfied, the counter is incremented, and if the above conditions are not satisfied, the counter is decremented, Finally, when the counter exceeds a predetermined number of times (th count ), it is determined that a candidate for the fall event has occurred.

상기 쓰러짐 이벤트 후보 중에는 배회의 경우에서처럼 걷던 사람이 화면상에서 멈춰서거나, 쭈그리고 앉는 경우와 같이 사람의 움직임이 중지되는 경우도 포함될 수 있다. 따라서 상기 자세 인식부(730)는 이러한 경우를 배제하기 위해서는 최종적인 상태, 즉 t=t0 이후의 시점에 사람의 자세가 서거나 앉아 있는 상태가 아니라 쓰러진 상태라는 걸 확인할 필요가 있다.Among the fall event candidates, a case in which a person's movement stops, such as when a walking person stops on the screen or squats down as in the case of wandering, may be included. Therefore, in order to exclude this case, the posture recognition unit 730 needs to confirm that the posture of the person is a collapsed state rather than a standing or sitting state at a time point after t = t 0 .

상기 자세 인식부(730)는 상기 쓰러짐 이벤트 후보의 자세를 인식하기 위하여 Deep 신경망으로 구성된 자세 인식 네트워크를 사용한다. 상기 자세 인식 네트워크는 우선 특징 추출을 위하여 VGG19의 Pre-trained Network를 사용하는데, 상기 VGG19의 특징 추출 결과인 4,096 dimension의 벡터를 Fully Connected Layer를 통하여 128 dimension의 벡터로 바꾸고, 다시 Fully Connected Layer를 통하여 최종적인 10개의 class로 분류하게 된다.The posture recognition unit 730 uses a posture recognition network composed of a deep neural network to recognize the posture of the falling event candidate. The posture recognition network first uses the pre-trained network of VGG19 for feature extraction, and changes the 4,096 dimension vector, which is the result of feature extraction of VGG19, into a 128 dimension vector through the Fully Connected Layer, and again through the Fully Connected Layer. Finally, it is classified into 10 classes.

그리고 상기 자세 인식 네트워크는 약 50,000장의 영상을 이용하여 10가지 자세를 분류하도록 훈련되어 있다. 상기 10가지 자세는 Standing normal, Standing bent, Sitting sofa, Sitting chair, Sitting floor, Sitting Squat, Lying face, Lying back, Lying side, Lying crouched 이다. And the posture recognition network is trained to classify 10 postures using about 50,000 images. The 10 postures are Standing normal, Standing bent, Sitting sofa, Sitting chair, Sitting floor, Sitting Squat, Lying face, Lying back, Lying side, Lying crouched.

상기 쓰러짐 이벤트 발생부(740)는 상기 10가지 자세중에서 Lying face, Lying back, Lying side, Lying crouched의 4가지 자세가 정해진 횟수 이상 검출된 경우, 최종적으로 쓰러짐 이벤트가 발생한 것으로 판단하고, 쓰러짐 이벤트를 발생할 수 있다.The fall event generating unit 740 determines that a fall event has occurred, and finally, when four postures of Lying face, Lying back, Lying side, and Lying crouched are detected more than a predetermined number of times among the 10 postures, the fall event is determined can occur

도 8은 도 7에 도시된 모션강도 계산부(710)에서 모션 강도를 계산하기 위한 시간 영역을 나타낸 도면이다.FIG. 8 is a diagram illustrating a time domain for calculating motion intensity in the motion intensity calculator 710 shown in FIG. 7 .

도 8에서 R1(810)는 t=t-2N부터 t=t-N까지의 영역, R2(820)는 t=t-N부터 t=t0까지의 영역을 나타낸다. 여기서 R1에서의 모션 강도를 m1, R2에서의 모션 강도를 m2를 구하는 것이다. In FIG. 8 , R1 810 denotes a region from t=t -2N to t=t -N , and R2 820 denotes a region from t=tN to t=t0. Here, m1 is the motion intensity in R1, and m2 is the motion intensity in R2.

사람이 t= t-N 이후에 갑자기 쓰러져 움직임을 멈춘다고 가정하면, 상기 m1은 큰 값을 가지는 반면, m2는 작은 값을 가지게 될 것이다. 따라서, m1/m2이 임계값(thratio)보다 크고, m1은 임계값(thmin)보다 크며, m2는 임계값(thmax)보다 작다는 조건 1을 만족하는 경우에는 t-N 시점에 쓰러짐 이벤트가 일어났다고 판단할 수 있다. 상기 thratio, thmin, thmax 는 사용자에 의해 정해질 수 있다.If it is assumed that a person suddenly collapses and stops moving after t = t -N , m1 will have a large value, whereas m2 will have a small value. Accordingly, if condition 1 is satisfied that m1/m2 is greater than the threshold value (th ratio ), m1 is greater than the threshold value (th min ), and m2 is less than the threshold value (th max ), it collapses at time t -N It can be determined that an event has occurred. The th ratio , th min , and th max may be determined by a user.

다만 쓰러지는데 걸리는 시간, 쓰러진 후에도 움직임이 없는 정지상태로 이행하기까지의 시간 등이 있는 것을 감안하여, 상기 조건을 만족하는 경우에는 카운터(counter)를 증가시키고, 상기 조건을 만족하지 못하는 경우에는 상기 카운터를 감소시켜, 최종적으로 카운터가 정해진 횟수(thcount)를 넘어서는 시점에 쓰러짐 이벤트의 후보가 발생했다고 판정을 내릴 수 있다.However, in consideration of the time it takes to fall down and the time it takes to transition to a stationary state with no movement after falling, the counter is incremented if the above conditions are satisfied, and if the above conditions are not met, the above By decrementing the counter, it can be determined that a candidate for the falling event has occurred when the counter finally exceeds a predetermined number of times (th count ).

도 9는 도 7에 도시된 자세 인식부(730)에서 사용하는 자세 인식 네트워크를 나타낸 도면이다.FIG. 9 is a diagram illustrating a posture recognition network used by the posture recognition unit 730 illustrated in FIG. 7 .

도 9를 참조하면, 자세 인식부(730)는 자세 인식 네트워크를 포함하는데, 상기 자세 인식 네트워크는 VGG19 Pre-trained Network(910), 첫번째 Fully Connected Layer(920), 두번째 Fully Connected Layer(930)을 포함하는 Deep 신경망으로 구성될 수 있다. Referring to FIG. 9 , the posture recognition unit 730 includes a posture recognition network, which includes a VGG19 Pre-trained Network 910 , a first Fully Connected Layer 920 , and a second Fully Connected Layer 930 . It can be composed of a deep neural network including

상기 VGG19의 Pre-trained Network(910)는 특징 추출을 위해 사용되는 Network이고, 첫번째 Fully Connected Layer(920)는 상기 VGG19의 특징 추출 결과인 4,096 dimension의 벡터를 128 dimension의 벡터로 바꾼다. 그리고 두번째 Fully Connected Layer(930)는 상기 128 dimension을 최종적인 10개의 class로 분류하는 것이다. The pre-trained network 910 of the VGG19 is a network used for feature extraction, and the first Fully Connected Layer 920 changes the 4,096 dimension vector, which is the feature extraction result of the VGG19, into a 128 dimension vector. And the second Fully Connected Layer 930 classifies the 128 dimension into 10 final classes.

상기 10개의 class는 본 발명에서 사용한 10가지의 자세를 말하는데, 이는 Standing normal, Standing bent, Sitting sofa, Sitting chair, Sitting floor, Sitting squat, Lying face, Lying back, Lying side, Lying crouched 이다.The 10 classes refer to 10 postures used in the present invention, which are Standing normal, Standing bent, Sitting sofa, Sitting chair, Sitting floor, Sitting squat, Lying face, Lying back, Lying side, Lying crouched.

도 10은 도 7에 도시된 자세 인식부(730)에서 사용하는 10가지의 자세를 나타낸 도면이다. FIG. 10 is a view showing ten postures used by the posture recognition unit 730 shown in FIG. 7 .

도 10을 참조하면, 상기 10가지의 자세는 Standing normal(1000), Standing bent(1010), Sitting sofa(1020), Sitting chair(1030), Sitting floor(1040), Sitting Squat(1050), Lying face(1060), Lying back(1070), Lying side(1080), Lying crouched(1090)를 포함할 수 있다. 상기 10가지의 자세는 약 50,000장의 영상을 이용하여 추출한 자세이다. 10, the 10 postures are Standing normal (1000), Standing bent (1010), Sitting sofa (1020), Sitting chair (1030), Sitting floor (1040), Sitting Squat (1050), Lying face (1060), Lying back (1070), Lying side (1080), it may include a Lying crouched (1090). The 10 postures are postures extracted using about 50,000 images.

상기 자세 인식부(730)의 Deep 신경망으로 구성된 자세 인식 네트워크는 쓰러짐 이벤트 후보의 자세를 최종적으로 상기 10가지 자세로 분류하도록 훈련되어 있다. The posture recognition network composed of the deep neural network of the posture recognition unit 730 is trained to finally classify the postures of the fall event candidates into the 10 postures.

이후, 쓰러짐 이벤트 발생부는 상기 자세 인식 네트워크의 최종 결과가 쓰러진 자세로 판단되는 Lying face(1060), Lying back(1070), Lying side(1080), Lying crouched(1090)의 4가지 자세가 될 경우, 쓰러짐이라고 판단할 수 있다. 또는 상기 판단에 신중을 기하기 위하여 같은 쓰러짐 이벤트 후보에 대해 상기 4가지 자세가 정해진 횟수 이상 검출된 경우, 최종적으로 쓰러짐 이벤트가 발생한 것으로 판단하고, 쓰러짐 이벤트를 발생할 수 있다.Thereafter, the collapsed event generating unit is the final result of the posture recognition network, Lying face (1060), Lying back (1070), Lying side (1080), Lying crouched (1090) determined to be a collapsed posture When it becomes four postures, It can be considered a fall. Alternatively, in order to be careful in the determination, when the four postures are detected more than a predetermined number of times for the same fall event candidate, it may be determined that the fall event has occurred and the fall event may be generated.

도 11은 도 6에 도시된 싸움 이벤트 판정부(630)에서 사용되는 특징 벡터 분류기를 나타낸 도면이다. FIG. 11 is a diagram illustrating a feature vector classifier used in the fight event determining unit 630 illustrated in FIG. 6 .

도 11을 참조하면, 상기 싸움 이벤트 판정부(630)의 싸움 이벤트를 판정하기 위한 특징 벡터 분류기는 Input layer(1120), Hidden Layer(1130), Output layer(1140)을 포함할 수 있다. Referring to FIG. 11 , the feature vector classifier for determining the fight event of the fight event determining unit 630 may include an input layer 1120 , a hidden layer 1130 , and an output layer 1140 .

상기 특징 벡터 분류기는 추적 정보 리스트에 포함되어 있는 사람에 대하여추출한 상기 표1과 같은 특징 벡터(1110)를 입력으로 받는다. 그리고 Shallow 신경망을 사용하여 상기 특징 벡터(1110)가 싸움에 해당하는지, 기타 정상적인 행동에 해당하는 지를 분류한다.The feature vector classifier receives a feature vector 1110 as shown in Table 1 extracted with respect to a person included in the tracking information list as an input. Then, whether the feature vector 1110 corresponds to a fight or other normal behavior is classified using a shallow neural network.

도 12은 실시예에 따른 CCTV 영상 기반 이상 행동 감지 방법의 일 예를 나타낸 동작 흐름도이다. 12 is an operation flowchart illustrating an example of a method for detecting abnormal behavior based on a CCTV image according to an embodiment.

도 12을 참조하면, 우선 CCTV 영상 기반 이상 행동 감지 장치에 CCTV 영상이 입력된다(S1210).Referring to FIG. 12 , first, a CCTV image is input to the CCTV image-based abnormal behavior detection device (S1210).

사람 객체 검출부에서 CCTV 영상 스트림(110)으로부터 사람 검출 엔진을 이용하여 사람 객체를 검출한다(S1220). The human object detection unit detects a human object from the CCTV video stream 110 using a human detection engine (S1220).

사람 객체 검출부는 다양한 사람 검출 엔진을 활용할 수 있다. 상기 사람 검출 엔진은 최근 인공 지능 기술의 발달에 힘입어 딥러닝 기술을 활용할 수 있는데, Ada Boost와 같은 기존 검출 엔진의 성능을 크게 향상시킨 방법뿐 아니라, YOLO(You Only Look Once) 기술을 사용할 수도 있다. 이상과 같은 딥러닝 기술을 활용한 사람 검출 엔진의 성능이 매우 향상되기는 하였으나, 오검출(사람이 아닌데 사람으로 검출함) 또는 미검출(사람인데 검출을 못함)의 확률은 여전히 낮지 않다. 따라서 본 발명에서는 이와 같은 오검출과 미검출의 문제를 해결하면서도 실시간 처리가 가능하기 위해서는 계산량이 적은 방법을 제안한다. 본 발명의 실시예에 따르면, 단일 영상의 정보뿐 아니라 시간에 따른 변화정보를 기반으로 사람을 빠르고 정확하게 검출할 수 있다. The human object detection unit may utilize various human detection engines. The human detection engine can utilize deep learning technology thanks to the recent development of artificial intelligence technology. have. Although the performance of the human detection engine using the deep learning technology as described above has been greatly improved, the probability of erroneous detection (detecting as a human instead of a human) or non-detecting (not detecting a human being) is still not low. Therefore, the present invention proposes a method with a small amount of calculation in order to enable real-time processing while solving the problems of false detection and non-detection. According to an embodiment of the present invention, it is possible to quickly and accurately detect a person based not only on information on a single image but also on information about changes over time.

추적 정보 리스트 생성부는 검출된 사람 객체의 추적 정보에 기반하여 추적 정보 리스트를 생성한다(S1230). The tracking information list generator generates a tracking information list based on the detected tracking information of the human object (S1230).

추적 정보 리스트 생성부는 상기 영상의 이전 프레임의 추적 정보 리스트를 관리리스트로 저장하고, 상기 영상의 현재 프레임에서 검출된 사람 객체의 리스트를 검출리스트에 저장하며, 상기 관리리스트와 상기 검출리스트를 비교하여 업데이트 리스트를 생성한다. 그리고 상기 업데이트 리스트에 포함되어 있는 사람 객체의 이동속도에 기반하여 상기 사람 객체가 사람인지 확인하고, 기준 영상과 현재 영상을 비교하여 상기 사람이 화면에서 이탈한 것인지 확인할 수 있다. The tracking information list generation unit stores the tracking information list of the previous frame of the image as a management list, stores a list of human objects detected in the current frame of the image in the detection list, and compares the management list with the detection list. Create an update list. In addition, based on the moving speed of the human object included in the update list, it may be determined whether the human object is a person, and a reference image and a current image may be compared to determine whether the person has departed from the screen.

상기 추적 정보 리스트 생성부가 상기 업데이트 리스트를 생성하는 동작을 수행하기 위하여 상기 관리리스트와 검출리스트 모두에 들어 있는 사람 객체의 리스트를 업데이트 리스트로 저장하고, 상기 관리리스트에는 없고 상기 검출리스트에만 들어 있는 사람 객체의 리스트를 상기 업데이트 리스트에 추가한다. 그리고 상기 추적 정보 리스트 생성부는 상기 검출리스트에는 없고 상기 관리리스트에만 들어 있는 사람 객체의 리스트에 대하여 사람 추적 알고리즘을 사용하여 사람 추적 기능을 수행하고, 상기 사람 추적 기능을 수행하여 얻은 정보를 기반으로 상기 업데이트 리스트에서 제외하는 동작을 수행할 수 있다. The tracking information list generating unit stores a list of human objects included in both the management list and the detection list as an update list in order to perform the operation of generating the update list, and a person who is not in the management list but is included in the detection list only Add a list of objects to the update list. And the tracking information list generating unit performs a person tracking function using a person tracking algorithm for a list of person objects that are not in the detection list and are included only in the management list, and based on the information obtained by performing the person tracking function, An operation to exclude from the update list can be performed.

이후, 상기 추적 정보 리스트 생성부는 상기 업데이트 리스트의 사람 객체의 이동 속도를 계산하고, 상기 이동 속도가 사람의 이동 속도로 지정된 범위 안에 있는 경우는 상기 사람 객체를 사람으로 확인하는 동작을 수행할 수 있다. 그리고 사람으로 확인되지 않은 상기 사람 객체를 상기 업데이트 리스트에서 제외하는 동작을 수행할 수 있다. 즉, 상기 추적 정보 리스트 생성부는 상기 업데이트 리스트의 사람 객체가 오검출에 의하여 잘못 생성된 것이 아닌지를 확인하는 작업을 수행하는 것이다. Thereafter, the tracking information list generating unit may calculate the movement speed of the person object in the updated list, and if the movement speed is within a range designated as the movement speed of the person, the operation of identifying the person object as a person may be performed. . In addition, an operation of excluding the person object, which is not identified as a person, from the update list may be performed. That is, the tracking information list generating unit checks whether the human object in the updated list is erroneously created due to erroneous detection.

또한, 상기 추적 정보 리스트 생성부는 상기 영상 내에 사람이 전혀 포함되어 있지 않은 기준 영상을 저장하고, 상기 기준 영상과 현재 영상을 비교하여 차이값을 저장할 수 있다. 그리고 상기 차이값을 기반으로 상기 업데이트 리스트의 사람이 화면에서 이탈한 것인지 여부를 판단하고, 화면에서 이탈한 사람을 상기 업데이트 리스트에서 제외할 수 있다. 마지막으로 화면에서 이탈한 사람이 제외된 상기 업데이트 리스트를 추적 정보 리스트로 저장할 수 있다. Also, the tracking information list generator may store a reference image in which no person is included in the image, compare the reference image with the current image, and store a difference value. In addition, based on the difference value, it may be determined whether the person in the update list leaves the screen, and the person who leaves the screen may be excluded from the update list. Finally, the updated list in which a person who has left the screen is excluded may be stored as a tracking information list.

이벤트 판정부는 상기 추적 정보 리스트에 있는 사람에 대하여 이상 행동 이벤트를 판정하는데, 배회침입 이벤트를 판정하고(S1240), 쓰러짐 이벤트를 판정하고(S1250), 싸움 이벤트를 판정한다(S1260). 상기 배회침입 이벤트, 쓰러짐 이벤트, 싸움 이벤트를 판정하는 각 단계는 동시에 할 수도 있고, 역순으로 해도 무방하다. The event determination unit determines an abnormal behavior event for a person in the tracking information list, determines a wandering intrusion event (S1240), determines a fall event (S1250), and determines a fight event (S1260). Each of the steps of determining the roaming intrusion event, the falling event, and the fighting event may be performed simultaneously or in the reverse order.

상기 이벤트 판정부는 배회침입 이벤트를 판정하는 단계(S1240)를 수행하기 위하여 상기 추적 정보 리스트에 포함되어 있는 사람이 침입 감시 영역 내에 들어가면 침입 이벤트를 발생시키고, 상기 사람이 배회 감시 영역 내에 들어가 일정한 시간 이상 머무르면 배회 이벤트를 발생시킨다. The event determination unit generates an intrusion event when a person included in the tracking information list enters the intrusion monitoring area in order to perform the step (S1240) of determining the roaming intrusion event, and the person enters the roaming monitoring area for a certain period of time or more If it stays, it triggers a wandering event.

상기 이벤트 판정부가 쓰러짐 이벤트를 판정하는 단계(S1250)를 수행하기 위하여 상기 추적 정보 리스트에 포함되어 있는 사람에 대해 연속한 두 개의 일정한 시간 구간에서 모션 강도를 계산하고, 상기 두 개의 모션 강도를 비교하여 쓰러짐 이벤트 후보를 생성시킨다. 그리고 상기 쓰러짐 이벤트 후보의 자세를 신경망을 이용하여 인식하고, 상기 쓰러짐 이벤트 후보의 인식된 자세 중 쓰러짐으로 정의된 자세가 정해진 횟수 이상 발생한 경우, 쓰러짐 이벤트를 발생시키게 된다. In order to perform the step (S1250) of the event determination unit determining the fall event, the motion intensity is calculated in two consecutive time intervals for the person included in the tracking information list, and the two motion intensities are compared. Create a fall event candidate. Then, the posture of the fall event candidate is recognized using a neural network, and when the posture defined as a fall among the recognized postures of the fall event candidate occurs more than a predetermined number of times, a fall event is generated.

상기 이벤트 판정부가 싸움 이벤트를 판정하는 단계(S1260)를 수행하기 위하여 상기 추적 정보 리스트에 포함되어 있는 사람에 대하여 싸움 특징을 벡터 형태로 추출하여 추출된 특징 벡터를 생성하고, 상기 추출된 특징 벡터로부터 특징 벡터 분류기를 이용하여 싸움 이벤트를 발생할 수 있다. In order to perform the step (S1260) of the event determination unit determining the fighting event, the fighting characteristic is extracted in a vector form for a person included in the tracking information list to generate an extracted characteristic vector, and from the extracted characteristic vector A fight event can be generated using a feature vector classifier.

알람 신호 생성부는 상기 이벤트 판정부가 판정한 이상 행동 이벤트에 대해 알람 신호를 생성한다(S1270).The alarm signal generation unit generates an alarm signal for the abnormal behavior event determined by the event determination unit (S1270).

도 13는 도 12에 도시된 추적 정보 리스트 생성 단계(S1230)의 일 예를 나타낸 동작 흐름도이다. 13 is an operation flowchart illustrating an example of the step of generating the tracking information list shown in FIG. 12 ( S1230 ).

도 13을 참조하면, 우선 관리리스트 생성부와 검출리스트 생성부는 각 관리리스트및 검출리스트를 생성한다(S1310). Referring to FIG. 13 , first, the management list generator and the detection list generator generate each management list and the detection list ( S1310 ).

상기 관리리스트 생성부는 입력 영상의 이전 프레임의 추적 정보 리스트를 관리리스트로 저장한다. 상기 검출리스트 생성부는 상기 입력 영상의 현재 프레임에서 검출된 사람 객체의 리스트를 검출리스트에 저장한다.The management list generating unit stores the tracking information list of the previous frame of the input image as a management list. The detection list generator stores a list of human objects detected in the current frame of the input image in the detection list.

업데이트 리스트 생성부의 업데이트 리스트 저장부는 업데이트 리스트를 저장한다(S1320). 즉, 상기 관리리스트와 검출리스트 모두에 들어 있는 사람 객체의 리스트를 업데이트 리스트로 저장한다. The update list storage unit of the update list generator stores the update list (S1320). That is, the list of human objects included in both the management list and the detection list is stored as an update list.

만약 사람 검출 엔진이 검출한 사람 정보 리스트인 검출리스트의 사람 객체의 리스트를 Pd로 표시하고, 이전 프레임에서부터 관리해 온 사람의 추적 정보 리스트인 관리리스트의 사람 객체의 리스트를 Po로 표시한다면,'Pd ∩ Po'는 상기 검출리스트의 사람 객체 리스트와 관리리스트의 사람 객체리스트가 겹쳐지는 경우로, 이전 영상까지 추적하던 사람이 이번 프레임에서도 다시 검출되었음을 의미하므로 그대로 업데이트 리스트에 포함시키면 된다.If the list of human objects in the detection list, which is the person information list detected by the human detection engine, is represented by Pd, and the list of human objects in the management list, which is the tracking information list of people managed from the previous frame, is represented by Po, then 'Pd ∩ Po' is a case in which the human object list in the detection list overlaps the human object list in the management list, and it means that the person who has been tracking up to the previous video has been detected again in this frame, so it can be included in the update list as it is.

상기 업데이트 리스트 생성부의 업데이트 리스트 추가부는 새로운 사람을 생성한다(S1330). 즉, 상기 관리리스트에는 없고 상기 검출리스트에만 들어 있는 사람 객체의 리스트를 상기 업데이트 리스트에 추가한다. 예를 들어, '(Pd ∪ Po) - Po'는 상기 검출리스트의 사람 객체 리스트가 상기 관리리스트의 사람 객체 리스트와 겹치지 않는 경우로, 이번 프레임에서 사람 객체가 새로이 검출되었음을 의미하므로 상기 업데이트 리스트에 새로운 사람 리스트를 생성하여 추가하면 된다.The update list adding unit of the update list generating unit creates a new person (S1330). That is, a list of human objects that are not in the management list and are included only in the detection list is added to the update list. For example, '(Pd ∪ Po) - Po' is a case in which the person object list in the detection list does not overlap the person object list in the management list, and it means that a human object is newly detected in this frame, so it is added to the update list. Create and add a new person list.

상기 업데이트 리스트 생성부의 업데이트 리스트 제외부는 사람 추적 기능을 수행하여 사람을 추적하고, 상기 업데이트 리스트에서 제외한다(S1340). 즉, 상기 검출리스트에는 없고 상기 관리리스트에만 들어 있는 사람 객체의 리스트에 대하여 사람 추적 알고리즘을 사용하여 사람 추적 기능을 수행하고, 상기 사람 추적 기능을 수행하여 얻은 정보를 기반으로 상기 업데이트 리스트에서 제외하는 동작을 수행할 수 있다. 예를 들어, '(Pd ∪ Po) - Pd'는 상기 관리리스트의 사람 객체 리스트가 상기 검출리스트의 사람 객체 리스트와 겹치지 않는 경우로, 영상의 이전 프레임까지 추적하고 있던 사람 객체가 현재 프레임에서는 검출되지 않았음을 의미하므로 이 경우에는 이전 프레임의 정보를 이용하여 사람 추적 기능을 수행하여 현재 프레임에 해당하는 사람이 있을 것으로 예상되는 위치를 추정하게 된다.The update list exclusion unit of the update list generator performs a person tracking function to track a person and excludes it from the update list (S1340). That is, a person tracking function is performed using a person tracking algorithm for a list of person objects that are not in the detection list but only included in the management list, and excluded from the update list based on information obtained by performing the person tracking function action can be performed. For example, '(Pd ∪ Po) - Pd' is a case in which the human object list of the management list does not overlap with the human object list of the detection list. In this case, the person tracking function is performed using the information of the previous frame to estimate the location where the person corresponding to the current frame is expected to be.

상기 업데이트 리스트 생성부에서 상기 업데이트 리스트를 생성하면, 사람 확인부는 이동 속도를 계산하여 상기 업데이트 리스트의 사람 객체가 사람인지 판단한다(S1350). 즉, 상기 사람 확인부는 상기 업데이트 리스트의 사람 객체의 이동 속도를 계산하고, 상기 이동 속도가 사람의 이동 속도로 지정된 범위 안에 있는 경우는 상기 사람 객체를 사람으로 확인하는 동작을 수행할 수 있다. 그리고 사람으로 확인되지 않은 상기 사람 객체를 상기 업데이트 리스트에서 제외하는 동작을 수행할 수 있다. 즉, 상기 사람 확인부는 상기 업데이트 리스트의 사람 객체가 오검출에 의하여 잘못 생성된 것이 아닌지를 확인하는 작업을 수행하는 것이다. When the update list generation unit generates the updated list, the person check unit determines whether the person object in the updated list is a human by calculating a moving speed (S1350). That is, the person identification unit may calculate a movement speed of the person object in the update list, and if the movement speed is within a range designated as the movement speed of the person, the person checker may perform an operation of identifying the person object as a person. In addition, an operation of excluding the person object, which is not identified as a person, from the update list may be performed. That is, the person checking unit checks whether the person object in the update list is erroneously created due to erroneous detection.

만약 상기 사람 객체가 사람이 아니라고 판단되면 상기 업데이트 리스트에서 제외하고(S1360), 상기 사람 객체가 사람이라고 판단되면 다음 단계로 넘어간다. 이 동작은 상기 업데이트 리스트에 포함되어 있는 모든 사람 객체에 대해 반복하게 된다. If it is determined that the person object is not a person, it is excluded from the update list (S1360), and if it is determined that the person object is a person, the process proceeds to the next step. This operation is repeated for all human objects included in the update list.

그리고 화면 이탈부는 상기 업데이트 리스트에 포함되어 있는 사람이 화면에서 이탈했는지 여부를 판단한다(S1370). 즉, 상기 화면 이탈부는 상기 영상 내에 사람이 전혀 포함되어 있지 않은 기준 영상을 저장하고, 상기 기준 영상과 현재 영상을 비교하여 차이값을 저장할 수 있다. 그리고 상기 차이값을 기반으로 상기 업데이트 리스트의 사람이 화면에서 이탈한 것인지 여부를 판단하고, 화면에서 이탈한 사람을 상기 업데이트 리스트에서 제외할 수 있다. 마지막으로 화면에서 이탈한 사람이 제외된 상기 업데이트 리스트를 추적 정보 리스트로 저장할 수 있다.And the screen departure unit determines whether a person included in the update list has left the screen (S1370). That is, the screen departure unit may store a reference image in which no person is included in the image, compare the reference image with the current image, and store a difference value. In addition, based on the difference value, it may be determined whether the person in the update list leaves the screen, and the person who leaves the screen may be excluded from the update list. Finally, the updated list in which a person who has left the screen is excluded may be stored as a tracking information list.

만약 상기 사람이 화면에서 이탈했다고 판단되면 상기 업데이트 리스트에서 제외하고(S1380), 상기 사람이 화면에서 이탈하지 않았다고 판단되면, 다음 단계로 넘어간다. 이 동작 역시 상기 업데이트 리스트에 포함되어 있는 모든 사람에 대해 반복하게 된다. 그리고 상기 화면 이탈부는 최종 업데이트 리스트를 추적 정보 리스트로 저장하여 추적 정보 리스트를 생성한다(S1390).If it is determined that the person has departed from the screen, it is excluded from the update list (S1380). If it is determined that the person has not left the screen, the process proceeds to the next step. This operation is also repeated for all persons included in the update list. And the screen exit unit generates a tracking information list by storing the last updated list as a tracking information list (S1390).

도 14는 실시예에 따른 컴퓨터 시스템 구성을 나타낸 도면이다.14 is a diagram showing the configuration of a computer system according to an embodiment.

실시예에 따른 CCTV 영상 기반 이상 행동 탐지 장치는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(1400)에서 구현될 수 있다.The CCTV image-based abnormal behavior detection apparatus according to the embodiment may be implemented in the computer system 1400 such as a computer-readable recording medium.

컴퓨터 시스템(1400)은 버스(1420)를 통하여 서로 통신하는 하나 이상의 프로세서(1410), 메모리(1430), 사용자 인터페이스 입력 장치(1440), 사용자 인터페이스 출력 장치(1450) 및 스토리지(1460)를 포함할 수 있다. 또한, 컴퓨터 시스템(1400)은 네트워크(1480)에 연결되는 네트워크 인터페이스(1470)를 더 포함할 수 있다. 프로세서(1410)는 중앙 처리 장치 또는 메모리(1430)나 스토리지(1460)에 저장된 프로그램 또는 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(1430) 및 스토리지(1460)는 휘발성 매체, 비휘발성 매체, 분리형 매체, 비분리형 매체, 통신 매체, 또는 정보 전달 매체 중에서 적어도 하나 이상을 포함하는 저장 매체일 수 있다. 예를 들어, 메모리(1430)는 ROM(1431)이나 RAM(1432)을 포함할 수 있다.Computer system 1400 may include one or more processors 1410 , memory 1430 , user interface input device 1440 , user interface output device 1450 , and storage 1460 that communicate with each other via bus 1420 . can In addition, computer system 1400 may further include a network interface 1470 coupled to network 1480 . The processor 1410 may be a central processing unit or a semiconductor device that executes programs or processing instructions stored in the memory 1430 or the storage 1460 . The memory 1430 and the storage 1460 may be storage media including at least one of a volatile medium, a non-volatile medium, a removable medium, a non-removable medium, a communication medium, and an information delivery medium. For example, the memory 1430 may include a ROM 1431 or a RAM 1432 .

이상에서 설명된 실시예에 따르면, CCTV 영상 분석을 통해 사람의 이상 행동을 감지하는 기술에 있어서, 빠르고 정확하게 사람을 검출 및 추적을 할 수 있는 CCTV 영상 기반 이상 행동 감지 방법 및 장치를 제공할 수 있다. According to the embodiment described above, in the technology for detecting abnormal behavior of a person through CCTV image analysis, it is possible to provide a CCTV image-based abnormal behavior detection method and apparatus capable of quickly and accurately detecting and tracking a person. .

또한, 객체의 검출 및 추적, 그리고 이벤트 판정에 있어서 계산량이 많지 않은 기술을 사용함으로써 실시간 처리가 가능한 이상 행동 감지 방법을 제공할 수 있다.In addition, it is possible to provide an abnormal behavior detection method capable of real-time processing by using a technique that does not require much computation in detecting and tracking an object and determining an event.

또한, 검출하고자 하는 이벤트간의 간섭 현상을 최소화함으로써 대상 이벤트를 정확히 검출하면서도 오경보를 최소화 할 수 있는 이상 행동 감지 방법을 제공할 수 있다. In addition, it is possible to provide an abnormal behavior detection method capable of minimizing false alarms while accurately detecting a target event by minimizing interference between events to be detected.

이상에서 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.Although the embodiments of the present invention have been described above with reference to the accompanying drawings, those of ordinary skill in the art to which the present invention pertains can implement the present invention in other specific forms without changing its technical spirit or essential features. You will understand that there is Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive.

100: CCTV 영상 기반 이상 행동 감지 장치
110: CCTV 영상 스트림
120: 사람 객체 검출부
130: 추적 정보 리스트 생성부
140: 이벤트 판정부
150: 알람 신호 생성부
160: 이상행동 이벤트 알람신호
100: CCTV image-based abnormal behavior detection device
110: CCTV video stream
120: human object detection unit
130: tracking information list generation unit
140: event judging unit
150: alarm signal generator
160: Abnormal behavior event alarm signal

Claims (1)

CCTV 영상으로부터 사람 검출 엔진을 이용하여 사람 객체를 검출하는 단계;
검출된 사람 객체의 추적 정보에 기반하여 추적 정보 리스트를 생성하는 단계;
상기 추적 정보 리스트에 있는 사람에 대하여 이상 행동 이벤트를 판정하는 단계; 및
상기 이상 행동 이벤트에 대해 알람 신호를 생성하는 단계를 포함하는, CCTV영상 기반 이상 행동 감지 방법.
detecting a human object from a CCTV image using a human detection engine;
generating a tracking information list based on the detected tracking information of the human object;
determining an anomalous behavioral event for a person on the tracking information list; and
Including the step of generating an alarm signal for the abnormal behavior event, CCTV image-based abnormal behavior detection method.
KR1020200034430A 2020-03-20 2020-03-20 Method for abnormal behavior detection based on cctv images, and apparatus for the same KR20210117760A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200034430A KR20210117760A (en) 2020-03-20 2020-03-20 Method for abnormal behavior detection based on cctv images, and apparatus for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200034430A KR20210117760A (en) 2020-03-20 2020-03-20 Method for abnormal behavior detection based on cctv images, and apparatus for the same

Publications (1)

Publication Number Publication Date
KR20210117760A true KR20210117760A (en) 2021-09-29

Family

ID=77924994

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200034430A KR20210117760A (en) 2020-03-20 2020-03-20 Method for abnormal behavior detection based on cctv images, and apparatus for the same

Country Status (1)

Country Link
KR (1) KR20210117760A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102541221B1 (en) * 2022-11-08 2023-06-13 주식회사 경우시스테크 Movable and intelligent cctv system device with ai based image recognition platform
KR20240009592A (en) 2022-07-14 2024-01-23 한국외국어대학교 연구산학협력단 Activity detection system and method in group video meeting

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240009592A (en) 2022-07-14 2024-01-23 한국외국어대학교 연구산학협력단 Activity detection system and method in group video meeting
KR102541221B1 (en) * 2022-11-08 2023-06-13 주식회사 경우시스테크 Movable and intelligent cctv system device with ai based image recognition platform

Similar Documents

Publication Publication Date Title
US10007850B2 (en) System and method for event monitoring and detection
US8243987B2 (en) Object tracking using color histogram and object size
Yang et al. Online learned discriminative part-based appearance models for multi-human tracking
JPH10285581A (en) Automatic monitoring device
Martínez-Martín et al. Robust motion detection in real-life scenarios
JP5358851B2 (en) Suspicious behavior detection method and suspicious behavior detection device
KR20210117760A (en) Method for abnormal behavior detection based on cctv images, and apparatus for the same
Chakravarty et al. Panoramic vision and laser range finder fusion for multiple person tracking
CN108898042A (en) A kind of detection method applied to user's abnormal behaviour in ATM machine cabin
KR101454644B1 (en) Loitering Detection Using a Pedestrian Tracker
KR101406334B1 (en) System and method for tracking multiple object using reliability and delayed decision
JP2011035571A (en) Suspicious behavior detection method and suspicious behavior detector
KR101840042B1 (en) Multi-Imaginary Fence Line Setting Method and Trespassing Sensing System
US20220036056A1 (en) Image processing apparatus and method for recognizing state of subject
Xu et al. Smart video surveillance system
KR20200060868A (en) multi-view monitoring system using object-oriented auto-tracking function
Van Den Hengel et al. Activity topology estimation for large networks of cameras
Liu et al. A real-time vision-based vehicle tracking and traffic surveillance
JP2012212238A (en) Article detection device and stationary-person detection device
Gil-Jiménez et al. Automatic control of video surveillance camera sabotage
CN116342645A (en) Multi-target tracking method for natatorium scene
KR101407394B1 (en) System for abandoned and stolen object detection
Kolekar et al. Detection of fence climbing using activity recognition by support vector machine classifier
Hsieh et al. A simple and fast surveillance system for human tracking and behavior analysis
KR20210114169A (en) Method for analyzing monitoring image using object verification, and apparatus for the same

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal