KR102614895B1 - 동적 카메라 영상 내의 객체를 실시간 추적하는 시스템 및 방법 - Google Patents

동적 카메라 영상 내의 객체를 실시간 추적하는 시스템 및 방법 Download PDF

Info

Publication number
KR102614895B1
KR102614895B1 KR1020210018306A KR20210018306A KR102614895B1 KR 102614895 B1 KR102614895 B1 KR 102614895B1 KR 1020210018306 A KR1020210018306 A KR 1020210018306A KR 20210018306 A KR20210018306 A KR 20210018306A KR 102614895 B1 KR102614895 B1 KR 102614895B1
Authority
KR
South Korea
Prior art keywords
camera
frame
movement
video
tracking
Prior art date
Application number
KR1020210018306A
Other languages
English (en)
Other versions
KR20220114819A (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 KR1020210018306A priority Critical patent/KR102614895B1/ko
Publication of KR20220114819A publication Critical patent/KR20220114819A/ko
Application granted granted Critical
Publication of KR102614895B1 publication Critical patent/KR102614895B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/292Multi-camera tracking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • G06T5/30Erosion or dilatation, e.g. thinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/277Analysis of motion involving stochastic approaches, e.g. using Kalman filters

Landscapes

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

Abstract

동적 카메라 영상 내의 객체를 실시간 추적하는 시스템이 개시된다. 상기 추적 시스템은 수평 이동, 수직 이동 및 회전이 가능하며, 특정 영역을 이동하며 촬영한 이동 영상 프레임들을 생성하는 영상 촬영 카메라 및 상기 영상 촬영 카메로부터 생성한 이동 영상 프레임들에 대하여 상기 영상 촬영 카메라의 움직임에 따른 이동 벡터들을 호모그래피 역변환함으로써 상기 영상 촬영 카메라의 움직임을 제거한 보상 영상 프레임들을 생성하고, 상기 생성한 보상 영상 프레임들로부터 키 포인트에 따라 탐지된 객체를 위치 유사도 및 생김새 유사도에 따라 추적하는 영상 분석 서버를 포함한다.

Description

동적 카메라 영상 내의 객체를 실시간 추적하는 시스템 및 방법{REAL-TIME OBJECT TRACKING SYSTEM AND METHOD IN MOVING CAMERA VIDEO}
본 발명의 개념에 따른 실시 예는 동적 카메라로부터 포착된 영상 내의 객체를 실시간으로 추적하는 기술에 대한 것으로, 보다 상세하게는 움직이는 카메라로부터 촬영된 영상에서 카메라의 움직임 성분을 실시간 제거하고 탐지된 객체의 키 포인트 별 특징 벡터를 추출 비교함으로써 보다 빠르고 정확하게 객체를 추적할 수 있는 동적 카메라 영상 내의 객체를 실시간 추적하는 기술에 관한 것이다.
현대는 각종 강력 범죄의 잦은 발생으로 사회적 불안감이 증가 됨에 따라 개인과 공공 안전에 대한 관심이 높아지고 있는 사회이다. 이에 따라, 각종 사건, 사고에 대한 사전 예방과 신속한 해결을 위하여 도심의 주택가, 학교, 도로 등에 CCTV(Closed-Circuit Television)가 설치되는 경우가 점차 증가하고 있다. 그리고 이러한 CCTV 시스템은 영상에서의 주요 특징점을 추출하여 객체를 인식하는 방법을 통해 단순 기록장치가 아닌 실시간 감시 및 신고자의 역할을 겸할 수 있는 지능형 CCTV로 진화하고 있다. 또한, 최근의 CCTV 시스템은 CCTV 카메라의 촬영 범위, 해상도의 한계를 극복하기 위해 PTZ(Pan-Tilt-Zoom) 카메라 등과 같은 동적 카메라를 이용하여 영상을 촬영하기 시작하였다. 그러나 종래 또는 최근의 CCTV 시스템들은 고정된 카메라가 촬영한 영상에 대해 객체를 인식 및 추적하는 방안 만을 제시할 뿐 움직이는 카메라로부터 촬영된 영상에 대해 실시간으로 객체를 인식 및 추적하는 방안은 제시하지 못하고 있다.
본 발명이 해결하고자 하는 기술적인 과제는 고정된 카메라 뿐만 아니라 움직이는 카메라에서 촬영된 영상에 대해서도 객체 추적이 가능하고, 저밀도 환경 뿐 아니라 고밀도의 복잡한 환경에서도 객체 추적이 가능하며, 기 촬영된 영상 뿐 아니라 현재 촬영 중인 영상에 대해서도 실시간 객체 추적이 가능한 동적 카메라 영상 내의 객체를 실시간 추적하는 시스템을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적인 과제는 고정된 카메라 뿐만 아니라 움직이는 카메라에서 촬영된 영상에 대해서도 객체 추적이 가능하고, 저밀도 환경 뿐 아니라 고밀도의 복잡한 환경에서도 객체 추적이 가능하며, 기 촬영된 영상 뿐 아니라 현재 촬영 중인 영상에 대해서도 실시간 객체 추적이 가능한 동적 카메라 영상 내의 객체를 실시간 추적하는 방법을 제공하는 것이다.
본 발명의 일 실시 예에 따른 동적 카메라 영상 내의 객체를 실시간 추적하는 시스템은 수평 이동, 수직 이동 및 회전이 가능하며, 특정 영역을 이동하며 촬영한 이동 영상 프레임들을 생성하는 영상 촬영 카메라 및 상기 영상 촬영 카메로부터 생성한 이동 영상 프레임들에 대하여 상기 영상 촬영 카메라의 움직임에 따른 이동 벡터들을 호모그래피 역변환함으로써 상기 영상 촬영 카메라의 움직임을 제거한 보상 영상 프레임들을 생성하고, 상기 생성한 보상 영상 프레임들로부터 키 포인트에 따라 탐지된 객체를 위치 유사도 및 생김새 유사도에 따라 추적하는 영상 분석 서버를 포함한다.
이때, 상기 영상 분석 서버는 상기 이동 영상 프레임들에 대하여 상기 영상 촬영 카메라의 움직임에 따른 이동 벡터들을 산출하는 카메라 움직임 추정 모듈과 상기 이동 영상 프레임들에 대하여 상기 산출한 이동 벡터들을 호모그래피 역변환함으로써 상기 영상 촬영 카메라의 움직임을 제거한 보상 영상 프레임들을 생성하는 카메라 움직임 보상 모듈과 상기 보상 영상 프레임들로부터 객체의 각 부분에 따른 상기 키 포인트를 인식하여 상기 객체를 탐지하는 객체 검출 모듈 및 상기 위치 유사도 및 생김새 유사도에 따라 상기 탐지된 객체를 추적하는 객체 추적 모듈을 포함한다.
실시 예에 따라, 상기 카메라 움직임 추정 모듈은 상기 이동 영상 프레임들의 픽셀값을 그레이 스케일로 변환하고, 상기 이동 영상 프레임들 중 이전 영상 프레임에 일정 간격으로 배치된 격자점들로 구성된 격자를 생성하여 상기 격자점들 각각에 대해 상기 이전 영상 프레임 대비 현재 영상 프레임에서의 그레이 스케일 값 변화량이 소정 기준치 이상인 격자점을 특징점으로 선별하며, 피라미드 루카스 카나에 알고리즘을 통해 상기 선별한 특징점들의 다음 영상 프레임에서의 예상 위치를 추정하여 특징점 쌍의 이동 벡터들을 구하고, 상기 특징점 쌍의 이동 벡터들에 대해 이차원 히스토그램을 계산하여 최고 빈도의 이동 벡터들을 상기 영상 촬영 카메라의 움직임에 따른 이동 벡터들로 산출하는 것을 특징으로 한다.
실시 예에 따라, 상기 움직임 보상 모듈은 상기 영상 촬영 카메라의 움직임에 따른 이동 벡터들을 기초로 상기 이동 영상 프레임들 중 이전 영상 프레임 내의 특징점들을 현재 영상 프레임의 특정 위치로 호모그래피 변환시키기 위한 호모그래피 행렬을 계산하고, 상기 계산한 호모그래피의 역변환을 상기 현재 영상 프레임의 모든 픽셀에 적용하여 상기 이전 영상 프레임 대비 상기 현재 영상 프레임에서의 상기 영상 촬영 카메라 움직임을 제거한 보상 영상 프레임들을 생성하는 것을 특징으로 한다.
실시 예에 따라, 상기 객체 검출 모듈은 상기 인식한 키 포인트에 따라 상기 탐지한 객체의 생김새를 나타내는 특징 벡터를 추출하는 것을 특징으로 한다.
실시 예에 따라, 상기 객체 추적 모듈은 칼만 필터를 이용해 상기 객체 검출 모듈로부터 탐지된 객체들 중 이전 영상 프레임까지 추적 중이던 추적 객체에 대하여 현재 영상 프레임에서 존재할 것이라 예측되는 위치를 추정하고, 상기 객체 검출 모듈에 의해 상기 현재 영상 프레임에서 탐지된 후보 객체들의 위치와 상기 칼만 필터를 이용해 추정한 상기 추적 객체의 위치를 비교하여 상기 위치 유사도를 판단하고, 상기 추적 객체의 특징 벡터와 상기 후보 객체들의 특징 벡터를 비교하여 상기 생김새 유사도를 판단하며, 상기 판단한 위치 유사도 및 상기 생김새 유사도에 따라 상기 추적 객체와 상기 후보 객체 간 동일성을 판단하여 상기 추적 객체를 추적하는 것을 특징으로 한다.
이때, 상기 객체 추적 모듈은 상기 판단한 위치 유사도 및 상기 생김새 유사도 각각에 소정 비율에 따른 가중치를 부여하여 상기 추적 객체와 상기 후보 객체간 동일성을 판단하되, 상기 추정한 추적 객체의 위치와 인접하는 소정 범위 내에서 상기 후보 객체들이 탐지된 경우에는 상기 위치 유사도에 상기 생김새 유사도보다 큰 가중치를 부여하고, 상기 추정한 추정된 위치와 인접하는 소정 범위 밖에서 상기 후보 객체들이 탐지된 경우에는 상기 생김새 유사도에 상기 위치 유사도보다 큰 가중치를 부여하는 것을 특징으로 한다.
본 발명의 일 실시 예에 따른 동적 카메라 영상 내의 객체를 실시간 추적하는 방법은 영상 촬영 카메라가 이동하며 촬영한 이동 영상 프레임들을 카메라 움직임 추정 모듈로 전송하는 단계와 상기 카메라 움직임 추정 모듈이 상기 전송된 이동 영상 프레임들에서 상기 영상 촬영 카메라에 대한 이동 벡터를 계산하여 상기 영상 촬영 카메라의 움직임을 추정하는 단계와 카메라 움직임 보상 모듈이 상기 이동 영상 프레임들에서 상기 추정한 영상 촬영 카메라의 움직임을 제거한 보상 영상 프레임들을 생성하여 객체 검출 모듈로 전송하는 단계와 상기 객체 검출 모듈이 상기 전송된 보상 영상 프레임들 중 해당 보상 영상 프레임에서 추적 객체를 검출하고, 상기 검출된 추적 객체의 특징 벡터를 추출하는 단계와 객체 추적 모듈이 칼만 필터를 이용하여 상기 해당 보상 영상 프레임 이후의 보상 영상 프레임에서 상기 추적 객체의 예상 위치를 추정하는 단계와 상기 객체 검출 모듈이 상기 해당 보상 영상 프레임 이후의 보상 영상 프레임에서 후보 객체를 검출하고, 상기 검출된 후보 객체의 특징 벡터를 추출하는 단계 및 상기 객체 추적 모듈이 상기 추정한 예상 위치와 인접하는 소정 범위 내 또는 상기 소정 범위 외에서 검출된 상기 후보 객체들과 상기 추적 객체 상호 간의 위치 유사도 및 상기 추출한 특징 벡터에 따른 생김새 유사도를 대비하여 매칭 여부를 판단하는 단계를 포함한다.
실시 예에 따라, 상기 카메라 움직임 추정 모듈이 상기 영상 촬영 카메라의 움직임을 추정하는 단계는 상기 전송된 이동 영상 프레임들의 픽셀값을 그레이 스케일로 변환하는 단계와 상기 이동 영상 프레임들에 대해 일정 간격으로 배치된 격자점들로 구성된 격자를 생성하는 단계와 상기 격자점들 각각에 대해 이전 영상 프레임 대비 현재 영상 프레임에서의 그레이 스케일 값 변화량이 소정 기준치 이상인 격자점을 특징점으로 선별하는 단계와 소정의 광학 흐름 방법을 통해 상기 특징점들의 다음 영상 프레임에 대한 위치를 추정하는 단계와 상기 현재 영상 프레임에서 선별한 특징점과 상기 추정한 다음 영상 다음 프레임서의 특징점을 이용하여 특징점 쌍의 이동 벡터들을 구하는 단계 및 상기 구한 이동 벡터들에 대해 이차원 히스토그램을 계산하여 최고 빈도의 이동 벡터들을 결정하여 상기 영상 촬영 카메라에 대한 이동 벡터를 계산하는 단계를 포함한다.
실시 예에 따라, 상기 카메라 움직임 보상 모듈이 상기 보상 영상 프레임들을 생성하여 객체 검출 모듈로 전송하는 단계는 상기 결정한 최고 빈도의 이동 벡터들을 통해, 상기 이전 영상 프레임 내의 특징점들을 상기 현재 영상 프레임의 특정 위치로 변환시키기 위한 호모그래피 행렬을 계산하는 단계와 상기 이동 영상 프레임 내의 픽셀들에 대해 상기 계산한 호모그래프 행렬의 역변환을 적용하여 상기 영상 촬영 카메라 움직임을 제거한 상기 보상 영상 프레임들을 생성하는 단계 및 상기 생성한 보상 영상 프레임들을 상기 객체 검출 모듈로 전송하는 단계를 포함한다.
상기와 같이 본 발명의 일 실시 예에 따른 동적 카메라 영상 내의 객체를 실시간 추적하는 시스템 및 방법은 영상 프레임 내 객체의 움직임에서 영상 카메라의 움직임을 배제한 영상 프레임 내 객체 자체의 움직임을 산출해 낼 수 있기 때문에 고정된 카메라 영상 뿐만 아니라 고정되지 않은 카메라 영상으로부터도 객체를 안정적으로 추적할 수 있는 효과가 있다.
또한, 본 발명의 일 실시 예에 따른 동적 카메라 영상 내의 객체를 실시간 추적하는 시스템 및 방법은 시스템 부하를 최소화하며 매우 빠르게 카메라 움직임을 배제시킬 수 있기 때문에 기 촬영된 영상 뿐 아니라 현재 촬영 중인 영상에 대해서도 실시간 객체를 추적할 수 있는 효과가 있다.
나아가, 본 발명의 일 실시 예에 따른 동적 카메라 영상 내의 객체를 실시간 추적하는 시스템 및 방법은 사람의 신체 부위에 대한 각 키 포인트를 인식하는 방식을 사용함으로써 저밀도 환경 뿐 아니라 객체가 중첩되는 고밀도 복잡한 환경에서도 정밀하게 객체를 추적할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위한 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 일 실시 예에 따른 동적 카메라 영상 내의 객체를 실시간 추적하는 시스템의 구성을 나타내는 블럭도이다.
도 2는 도 1에 도시된 카메라 움직임 추정 모듈이 해당 영상 프레임에 격자점 및 특징점을 표시한 예시도이다.
도 3은 도 1에 도시된 카메라 움직임 추정 모듈이 이동 벡터에 대해 이차원 히스토그램을 계산하여 높은 빈도의 이동 벡터를 결정한 예시도이다.
도 4는 본 발명의 일실 시예 따른 호모그래피 역변환이 적용된 예시도이다.
도 5는 본 발명의 일 실시 예에 따른 동적 카메라 영상 내의 객체를 실시간 추적하는 방법을 설명하기 위한 순서도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 명세서에서, "포함한다" 또는 "갖는다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다.
일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 포함하는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 일 실시 예에 따른 동적 카메라 영상 내의 객체를 실시간 추적하는 시스템(이하, '추적 시스템(10)'이라 함)의 구성을 나타내는 블럭도이고,
도 1을 참조하면, 추적 시스템(10)은 특정 지역의 원하는 영역을 촬영하는 영상 촬영 카메라(100)와 촬영된 영역에 대한 영상으로부터 카메라의 이동 성분을 제거하고 객체의 이동 성분에 따라 객체를 추적하는 영상 분석 서버(200)를 포함한다.
영상 촬영 카메라(100)는 고정된 영역을 하는 일반적인 CCTV 카메라 뿐만 아니라 동적으로 움직이는 카메라, 예컨대 수평 이동, 수직 이동, 줌 조정이 가능한 팬틸트줌(Pan-Tilt-Zoom, PTZ) 카메라로 구현될 수 있다.
즉, 영상 촬영 카메라(100)는 특정 지역 또는 특정 객체를 촬영하기 위해 이동이 가능하며, 이동하며 촬영한 이동 영상 프레임들(1_frame 내지 n_frame)을 영상 분석 서버(200)로 전송한다.
영상 분석 서버(200)는 카메라 움직임 추정 모듈(230), 카메라 움직임 보상 모듈(250), 객체 검출 모듈(270) 및 객체 추적 모듈(290)을 포함하며, 영상 촬영 카메라(100)로부터 전송된 영상 프레임들에 대해 카메라의 이동 성분을 제거한 객체 이동 상태를 파악하여 추적하는 역할을 수행한다.
우선, 영상 분석 서버(200)의 카메라 움직임 추정 모듈(230)은 영상 촬영 카메라(100)를 통해 이동 영상 프레임들(1_frame 내지 n_frame)을 획득하게 되면, 이전 영상 프레임(예컨대, k-1_frame) 대비 현재 영상 프레임(예컨대, k_frame)에서 영상 촬영 카메라(100)의 움직임을 추정하는 역할을 한다.
이때, 카메라 움직임 추정 모듈(230)은 실시간 동영상 스티칭 알고리즘(video stitching algorithm) 기반으로 이전 영상 프레임(k-1_frame) 대비 현재 영상 프레임(k_frame)에서 배경(예컨대, 건물, 상점 등)의 위치가 어떻게 변화 했는지를 파악해 영상 촬영 카메라(100)의 움직임을 추정한다.
이전 영상 프레임(예컨대, k-1_frame) 대비 현재 영상 프레임(예컨대, k_frame)에서 객체들의 움직임이 있다고 할 때, 이는 객체 자체의 움직임이 있었거나 영상 촬영 카메라(100)의 움직임(예컨대, 배경의 위치 변화)이 있었다 할 수 있으며, 또한 객체 자체의 움직임 및 영상 촬영 카메라(100)의 움직임이 모두 존재하는 경우일 수도 있다.
상기와 같은 여러 가지 이유의 객체 움직임이 있을 수 있고, 카메라 움직임 추정 모듈(230)은 영상 프레임 내 객체의 움직임은 배제하고 영상 프레임 내의 카메라 움직임만을 추정한다.
이와 같이 카메라 움직임 추정 모듈(230)이 영상 프레임 내의 카메라 움직임을 추정하는 이유는 영상 프레임에서 직접적으로 얻을 수 있는 것은 '영상 프레임 내 객체의 움직임'이고, 이러한 '영상 프레임 내 객체의 움직임'에서 '영상 카메라의 움직임'을 배제하면 '영상 프레임 내 객체 자체의 움직임'을 산출해 낼 수 있기 때문이다.
카메라 움직임 추정 모듈(230)이 이동 영상 프레임에서 영상 촬영 카메라(100)의 움직임을 추정하는 과정은 다음과 같다.
우선, 카메라 움직임 추정 모듈(230)은 해당 영상 프레임에 일정 간격으로 배치된 격자점들로 구성된 격자(Grid)를 생성하며, 상기 격자를 이루는 격자점들 각각은 해당 영상 프레임에서 픽셀값 뿐만 아니라 x축 좌표값 및 y축 좌표값을 갖는 위치 정보를 보유한다.
이후, 카메라 움직임 추정 모듈(230)은 상기 생성한 격자점들을 대상으로 영상 프레임 내 움직임을 알아낼 기준이 되는 특징점을 추출한다.
이때, 상기의 특징점 추출을 위하여 이미지 피라미드를 이용하는 SIFT(Scale Invariant Feature Transform) 또는 헤시안(Hessian) 행렬식을 이용하는 SURF(Speed-Up Robust Feature) 등과 같은 일반적인 특징점 추출 알고리즘을 사용할 수도 있으나, 상기 SIFR나 SURF 알고리즘은 특징점을 추출하고 매칭하기 위한 연산량이 많기 때문에 실시간 환경에는 적합하지 않다.
따라서, 카메라 움직임 추정 모듈(230)은 종래 일반적인 방식 대비 현저히 빠른 연산 속도를 낼 수 있는 특징점 추출 방식을 이용한다.
카메라 움직임 추정 모듈(230)이 상기 특징점을 추출하는 방법을 보다 상세히 설명한다.
우선, 카메라 움직임 추정 모듈(230)은 영상 프레임들의 픽셀값을 컬러 값이 아닌 무채색 스케일, 즉 그레이 스케일(gray scale)로 변환한다.
실시 예에 따라, 상기 그레이 스케일은 0.0 ~ 1.0 범위 내 또는 0 ~ 255 범위 내로 설정될 수 있다.
이후, 카메라 움직임 추정 모듈(230)은 격자점들 각각에 대해 이전 영상 프레임(예컨대, k-1_frame) 대비 현재 영상 프레임(k_frame)에서의 그레이 스케일 값 변화량을 계산하고, 상기 계산된 그레이 스케일 값 변화량이 소정 기준치 이상인 경우에만 해당 격자점을 상기 특징점으로 선별한다.
예컨대, 이전 영상 프레임(k-1_frame)에서 x 좌표값이 10이고 y 좌표값이 10인 제1격자점의 그레이 스케일값은 1.0(흰색)이고, 현재 영상 프레임(k_frame)에서 동일 좌표값을 갖는 상기 제1격자점의 그레이 스케일값이 0.0(검은색)인 경우에 상기 제1격자점의 그레이 스케일 값 변화량은 1.0이 된다.
이때, 상기 소정 기준치가 0.5라 한다면, 상기 제1격자점의 그레이 스케일 값 변화량인 1.0은 상기 소정 기준치 0.5 보다 크기 때문에 카메라 움직임 추정 모듈(230)은 상기 제1격자점을 상기 상기 특징점으로 선별한다.
이와 같은 방식으로 카메라 움직임 추정 모듈(230)은 각 격자점들에 대해 그레이 스케일 값 변화량을 계산함으로써 상기 특징점을 선별한다.
도 2는 도 1에 도시된 카메라 움직임 추정 모듈(230)이 해당 영상 프레임에 격자점 및 특징점을 표시한 예시도이다.
도 2를 참조하면, 해당 영상 프레임에 격자가 생성되고 상기 생성된 격자는 소정 간격으로 배치된 격자점으로 구성됨을 알 수 있다.
또한, 격자점들 중 노란색으로 표시된 격자점들은 최종 선별 된 특징점을 나타내고, 빨간색으로 표시된 격자점들은 상기의 소정 기준치를 만족하지 못해 특징점으로 선별되지 못하는 격자점을 나타낸다.
다시 도 1을 참조하면, 카메라 움직임 추정 모듈(230)은 소정의 광학 흐름(Optical Flow) 방법을 통해 현재 영상 프레임(k_frame)에서 추출한 특징점들이 다음 프레임(k+1_frame)의 어느 위치로 이동했는지 추정한다.
실시 예에 따라, 상기 광학 흐름 방법으로 블록 매칭 방법(Block Matching method), 혼-셩크 알고리즘(Horn-Shunck algorithm), 루카스 카나데 알고리즘(Lucas-Kanade algorithm) 또는 군나르 파너백 알고리즘(Gunnar Farenback's algorithm) 등의 방법을 이용할 수도 있으나, 본 발명의 일 실시 예 따른 카메라 움직임 추정 모듈(230)은 추출한 특징점에 대하여 광학 흐름을 분석할 수 있고, 알고리즘 소요 시간 대비 정확성이 높아 실시간 영상에 가장 적합한 피라미드 루카스 카나에 알고리즘(Iterative Lucas-Kanade Method with Pyramids)을 이용하는 것이 바람직하다.
즉, 카메라 움직임 추정 모듈(230)은 피라미드 루카스 카나에 알고리즘을 통해 상기와 같이 선별한 특징점들이 다음 영상 프레임(k+1_frame)의 어느 위치로 이동했는지 추정할 수 있다.
이를 통해 카메라 움직임 추정 모듈(230)은 현재 영상 프레임(k_frame)에서의 특징점 위치 정보와 다음 영상 프레임(k+1_frame)에 대해 추정한 특징점의 위치 정보를 이용하여 특징점 쌍(현재 영상 프레임에서의 특징점과 다음 영상 프레임에서 추정된 특징점)의 이동 벡터를 구한다.
예컨대, 현재 영상 프레임(k_frame)에 존재하는 여러 특징점들 중 제1 특징점의 위치 정보가 (41, 25)이고 다음 영상 프레임(k+1_frame)에서 추정된 상기 제1 특징점의 위치 정보가 (73, 81)라 하면, 상기 제1 특징점의 이동 벡터는 V1 = (32, 56)이 된다.
이와 같은 방법으로 카메라 움직임 추정 모듈(230)은 현재 영상 프레임(k_frame)에 존재하는 모든 특징점들에 대해 다음 영상 프레임(k+1_frame)에서의 위치를 추정하고, 이들 특징점 쌍에 대한 이동 벡터를 구할 수 있다.
한편, 이들 특징점 쌍의 이동 벡터들 중에는 영상 프레임 내 객체의 움직임 만으로 발생한 이동 벡터가 있을 수 있고, 또한 전적으로 영상 촬영 카메라(100)의 움직임만으로 발생한 이동 벡터가 있을 수 있다.
사람, 자동차와 같이 움직이는 객체는 영상 프레임 내에서 일부 영역인 반면, 건물 등과 같은 배경이 되는 부분은 영상 프레임 내에서 대부분의 영역을 차지할 것이기 때문에 배경이 되는 부분으로부터 발생한 이동 벡터는 영상 촬영 카메라(100)의 움직임에 의한 것으로 볼 수 있다.
따라서 전체 이동 벡터에 대해 이차원 히스토그램(2D Histogram)을 계산하여 최고 빈도의 이동 벡터를 결정할 수 있고, 상기 최고 빈도에 해당하는 이동 벡터들이 배경의 이동 벡터, 즉 영상 촬영 카메라(100)의 움직임에 따른 이동 벡터로 판단한다.
실제적으로 영상 프레임 내의 상기 특징점 쌍의 이동 벡터들은 수 백개 이상일 수 있으나, 본 발명의 상세한 설명에서는 설명의 편의를 위해 상기 전체 이동 벡터들의 수가 4개인 경우를 가정하고, 상기 이차원 히스토그램의 저장소(bin)는 x, y를 10 단위로 분류하는 것으로 설명한다.
예컨대, 제1 이동 벡터(V1)가 (32, 56), 제2 이동 벡터(V2)가 (41, 25), 제3 이동 벡터(V3)가 (37, 51), 제4 이동 벡터(V4)가 (35, 53)이라 가정한다.
이때, 상기 제1 이동 벡터 내지 제4 이동 벡터(V1 ~ V4)를 각각 x, y 10 단위의 저장소에 입력한다면, 상기 제1 이동 벡터(V1)는 (3, 5)의 저장소에 입력되고, 상기 제2 이동 벡터(V2)는 (4, 2)의 저장소에 입력되고, 상기 제3 이동 벡터(V3)는 (3, 5)의 저장소에 입력되며, 상기 제4 이동 벡터(V4)는 (3, 5)의 저장소에 입력된다.
이 때, 가장 많은 이동 벡터가 입력된 저장소는 제1 이동 벡터(V1), 제3 이동 벡터(V3) 및 제4 이동 벡터(V4)가 저장되어 있는 (3, 5) 저장소이며, 상기 (3, 5) 저장소에 저장된 제1 이동 벡터, 제3 이동 벡터 및 제4 이동 벡터가 최고 빈도에 해당하는 이동 벡터(즉, 배경의 이동 벡터)라 할 수 있다.
이에, 카메라 움직임 추정 모듈(230)은 배경의 이동 벡터와 관련된 상기 제1 이동 벡터(V1), 제3 이동 벡터(V3) 및 제4 이동 벡터(V4)를 영상 촬영 카메라(100)의 움직임에 따른 이동 벡터로 판단한다.
영상 촬영 카메라(100)는 단순히 수평 방향(또는 수직 방향)으로 움직일 수 있으나 회전(수평 방향 및 수직 방향으로 동시에 움직이는 경우)할 수도 있기 때문에, 영상 촬영 카메라(100)의 움직임에 따른 이동 벡터는 상기와 같이 유사한 크기와 방향을 갖는 복수의 이동 벡터들(예컨대, V1, V3 및 V4)로 나타날 수 있다.
도 3은 카메라 움직임 추정 모듈(230)이 이동 벡터에 대해 이차원 히스토그램을 계산하여 높은 빈도의 이동 벡터를 결정한 예시도이다.
도 3을 참조하면, 표시된 빨간선이 최종 선택된 카메라 움직임에 해당하는 이동 벡터가 되며, 대략적으로 이전 프레임 대비 현재 프레임에서 빨간선 정도의 방향과 크기로 움직임이 있었다고 판단할 수 있다.
다시 도 1을 참조하면, 카메라 움직임 보상 모듈(250)은 카메라 움직임 추정 모듈(230)로부터 판단된 영상 촬영 카메라(100)의 움직임에 따른 이동 벡터들을 통해, 이전 영상 프레임(k-1_frame) 내의 특징점들을 현재 영상 프레임(k_frame)의 특정 위치로 호모그래피(Homography) 변환시키기 위한 호모그래피 행렬(Homography matrix)을 계산한다.
일반적으로 호모그래피란 3D 공간에서의 이미지를 2D 공간으로 투영시킨 변환으로 3D 공간에서 서로 다른 두 시점에서 바라본 두 개의 이미지를 서로 변환하는 방법을 의미하며, 이때 서로 다른 두 이미지의 관계를 표현한 행렬을 호모그래피 행렬이라 한다.
즉, 상기 호모그래피 행렬이란 이전 영상 프레임(k-1_frame)에 위치한 특정 특징점들이 현재 영상 프레임(k_frame)의 특정 위치에 존재하도록 변환시키는 행렬이라 할 수 있다.
이때, 상기 특정 특징점은 이들에 대한 특징점 쌍의 이동 벡터가 상기 영상 촬영 카메라(100)의 움직임에 따른 이동 벡터로 판단되는 특징점을 의미하며, 상기 현재 영상 프레임(k_frame)의 특정 위치는 상기 광학 흐름 방법을 통해 상기 특정 특징점이 현재 영상 프레임(k_frame)에 존재할 것으로 추정되는 위치를 의미한다.
따라서, 이전 영상 프레임(k-1_frame)에 위치한 특정 특징점들은 상기 호모그래피 변환을 적용하였을 때 현재 프레임(k_frame)의 특정 위치에 존재하게 된다.
즉, 본 명세서에서의 상기 호모그래피란 객체의 이동에 있어서 객체 자신스스로의 움직임을 제외한 영상 촬영 카메라(100)의 움직임에 따른 이동이라 할 수 있다.
한편, 이전 영상 프레임(k-1_frame)에 위치한 특정 특징점들을 제외한 다른 특징점들은 상기 호모그래피 변환을 적용하였을 때의 현재 영상 프레임(k_frame) 내 특정 위치와 앞서 설명한 광학 흐름 방법을 통해 현재 영상 프레임(k_frame)에서 추정된 위치가 다를 수 있다.
이러한 차이는 상기 특정 특징점들을 제외한 다른 특징점들은 영상 촬영 카메라(100)의 움직임에 따른 이동(즉, 상기 호모그래프 변환) 뿐만 아니라 객체 스스로의 움직임이 있었기 때문으로 볼 수 있다.
따라서, 현재 영상 프레임(k_frame)내의 모든 특징점들은 상기 광학 흐름 방법을 통해 추정된 위치 정보를 보유하며, 이들에 대해 상기 호모그래프의 역변환을 수행하면 영상 촬영 카메라(100)의 움직임이 제거된 위치 정보를 보유하게 된다.
즉, 상기 호모그래프의 역변환 수행시 배경과 관련된 객체들은 영상 촬영 카메라(100)의 움직임이 제거되었기 때문에 이전 영상 프레임(k-1_frame) 대비 동일한 위치 정보를 갖게 되며, 배경과 관련이 없는 객체들(예컨대, 사람, 자동차 등)은 객체 스스로의 움직임만 반영된 위치 정보를 갖게 된다.
이와 같은 이유로, 카메라 움직임 보상 모듈(250)은 상기와 같이 계산한 호모그래피의 역변환을 현재 영상 프레임(k_frame)을 이루는 모든 픽셀에 적용하여, 이전 영상 프레임 대비 현재 영상 프레임(k_frame)에서의 영상 촬영 카메라(100) 움직임을 제거한 보상 영상 프레임들(예컨대, 1_frame_am 내지 n_frame_am)을 생성한다.
그 결과, 상기 호모그래피의 역변환이 적용된 현재 보상 영상 프레임(k_frame_am) 내의 모든 픽셀은 영상 촬영 카메라(100)의 움직임이 제거된 위치 정보를 갖는다.
도 4는 본 발명의 일실 시예 따른 호모그래피 역변환이 적용된 예시도이다.
이때, 도 4의 (a)는 호모그래피 역변환이 적용되기 전의 이동 영상 프레임(k-1_frame 및 k_frame)을 나타내며, 도 4의 (b)는 호모그래피 역변환이 적용된 후의 보상 영상 프레임(k-1_frame_am 및 k_frame_am)을 나타낸다.
도 4의 (a)를 참조하면, 영상 촬영 카메라(100)의 우측 방향으로의 이동으로 인해 이전 영상 프레임((k-1_frame) 대비 현재 영상 프레임(k_frame)에서 배경 객채(예를 들어, 전봇대)가 좌측으로 이동한 것을 확인할 수 있다.
이에 비해 도 4의 (b)를 참조하면, 영상 촬영 카메라(100)가 움직였음에도 불구하고 영상 내 배경 객체(예를 들어, 전봇대)의 절대적인 위치는 고정되어 있음을 확인할 수 있다.
이후, 카메라 움직임 보상 모듈(250)은 상기와 같이 영상 프레임에서 영상 촬영 카메라(100) 움직임을 제거하여 생성한 보상 영상 프레임들(1_frame_am 내지 n_frame_am)을 객체 검출 모듈(270)로 전송한다.
다시 도 1을 참조하면, 객체 검출 모듈(270)은 카메라 움직임 보상 모듈(250)로부터 전송된 보상 영상 프레임들(1_frame_am 내지 n_frame_am) 내에서 추적과 계수의 대상이 되는 객체(예컨대, 사람)를 검출하고, 검출된 객체의 생김새를 표현하는 특징 벡터를 추출한다.
일반적인 사람 검출 모델의 경우 영상 내 사람이 차지하고 있는 전체 영역을 인식하고 사람을 둘러싸고 있는 바운딩 박스(bounding box)를 반환하지만, 본 발명의 일 실시 예에 따른 객체 검출 모듈(270)은 사람의 신체 부위에 대한 각 키 포인트(예컨대, 눈, 코, 입, 어깨, 팔꿈치, 손목, 허리, 무릎, 발목 등의 신체 부분)를 인식하여 역으로 사람의 전체 영역을 추정하는 방식을 사용한다.
이와 같은 방식은 상기 키 포인트라는 개념을 이용하여 사람의 신체 부분의 정보를 추출, 인식함으로써 보다 정밀하게 사람을 검출할 수 있다.
예를 들어 영상 내 특정 사람의 머리만 보이고 머리 아래 부분은 지나가는 자동차에 의해 가려진 경우, 사람 전체 영역에 대해서 스코어를 계산하는 일반적인 사람 검출 모델은 상기 특정 사람을 사람으로 인식하지 못할 가능성이 높다.
그러나, 본 발명의 일 실시 예에 따른 객체 검출 모듈(270)은 사람의 각 키 포인트 별 스코어를 계산할 수 있기 때문에 사람 몸 전체에 대한 스코어는 낮게 계산되어도 머리 부분에 대해서는 높은 스코어가 계산되어 머리만 노출된 사람도 정확하게 검출할 수 있다.
이후 객체 검출 모듈(270)은 검출된 객체의 생김새를 표현하는 특징 벡터를 추출한다.
상기 특징 벡터는 대상이 되는 사람 영역(예컨대, 키 포인트 별 영역)의 픽셀값에서 추출되는 생김새 벡터이며, 객체 검출 모듈(250)은 키 포인트별 정보를 이용하여 상기 특징 벡터를 추출한다.
즉, 객체 검출 모듈(250)은 키 포인트 별 정보를 이용함으로써 어떤 신체 부분이 영상 프레임 내에서 보이는 부분인지, 보이지 않는 부분인지를 파악할 수 있으며, 대상의 보이는 부분을 이용하여 특징 벡터를 추출한다.
이에 따라, 객체 검출 모듈(250)은 해당 영상 프레임 내에 여러 사람이 중첩되는 밀도가 높은 경우라도 정확하게 사람을 인식하고 해당 특징 벡터를 추출할 수 있다.
한편, 객체 추적 모듈(290)은 이전 영상 프레임(예컨대, k-1_frame_am)에서 검출된 객체와 현재 영상 프레임(예컨대, k_frame_am)에서 검출된 객체와의 동일성을 판단하는 검출 기반 추적 방법(Track by Detect)을 이용하여 해당 객체를 추적한다.
이때, 객체 추적 모듈(290)이 상기 해당 객체의 추적을 수행하기 위한 보상 영상 프레임들(예컨대, 1_frame_am 내지 n_frame_am)은 카메라 움직임 보상 모듈(250)이 영상 촬영 카메라(100) 움직임을 제거하여 생성한 영상 프레임들이다.
상기 검출 기반 추적 방법과 관련하여, 제 1 영상 프레임(1_frame_am)은 영상이 최초 시작되는 프레임으로서 제 1 영상 프레임(1_frame_am)에서는 추적 중인 객체가 없기 때문에 검출된 모든 객체에 대해 추적을 시작하는 초기화 단계라 할 수 있다.
또한, 제 k 영상 프레임(k_frame_am)은 제 k-1 영상 프레임(k-1_frame_am)까지 추적 중이던 객체들과 제 k 영상 프레임(k_frame_am)에서 검출된 객체들과 매칭을 통해 기존 추적을 현재 영상 프레임으로 이어가거나, 기존 추적과 매칭되지 않는 객체들을 대상으로 신규 추적을 시작하는 단계라 할 수 있다.
이때, 객체 추적 모듈(290)은 상기 검출 기반 추적 방법을 이용하여 해당 객체를 추적함에 있어서, 객체 검출 모듈(250)로부터 검출된 객체 간의 위치 유사도및 생김새 유사도(키 포인트 별 특징 벡터의 유사도)에 따라 해당 객체를 추적할 수 있다.
이하, 객체 추적 모듈(290)이 해당 객체를 추적하는 방법에 대해서 상세히 설명한다.
우선, 객체 추적 모듈(290)은 칼만 필터(Kalman Filter)를 이용해 이전 영상 프레임(예컨대, k-1_frame_am)까지 추적 중이던 객체(예컨대, 추적 객체(Tr_obj))에 대하여 현재 프레임(예컨대, k_frame_am)에서 존재할 것이라 예측되는 위치를 추정한다.
이후, 객체 추적 모듈(290)은 객체 검출 모듈(270)로부터 상기 추정된 위치와 인접하는 소정 범위 내에서 검출된 객체(예컨대, 후보 객체(Ca_obj))를 상기 추적 중이던 객체(Tr_obj)와 대비한다.
이때, 객체 추적 모듈(290)로부터 추정된 위치나 객체 검출 모듈(270)로부터 검출된 객체의 위치는 이미 카메라 움직임 보상 모듈(250)로부터 카메라 움직임이 보상된 영상 프레임에서의 위치이므로 이들 상호 간의 직접적인 위치 비교가 가능하다.
즉, 객체 추적 모듈(290)은 객체 검출 모듈(250)로부터 검출된 후보 객체가 상기 추정된 위치의 일정 범위 내에 존재하는지 여부에 따라 이들 간 위치 유사도를 판단하고, 상기 추적 중이던 객체(Tr_obj)의 특징 벡터와 상기 검출된 후보 객체(Ca_obj)의 특징 벡터를 비교하여 이들 간 생김새 유사도를 판단한다.
앞서 설명하였듯이, 상기 특징 벡터는 키 포인트 별(눈, 코, 입, 어깨, 팔꿈치, 손목, 허리, 무릎, 발목 등의 신체 부분) 정보를 이용하여 추출되므로, 해당 영상 프레임 내에 여러 사람이 중첩되는 밀도가 높은 경우라도 정확하게 비교가 가능하다.
또한, 객체 추적 모듈(290)은 상기 추적 중이던 객체(Tr_obj)의 키 포인트별 특징 벡터와 상기 상기 검출된 후보 객체(Ca_obj)의 키포인트 별 특징 벡터를 비교하여 생김새 유사도를 판단하되, 각 키포인트에 따른 우선 순위를 설정하여 객체 상호 간 유사도를 판단할 수 있다.
예컨대, 눈, 코, 입, 어깨, 팔꿈치, 손목, 허리, 무릎, 발목 등의 각 키포인트들 중에서 눈, 코, 입 등 사람의 얼굴과 관련된 키 포인트의 특징 벡터에 가장 높은 우선 순위를 설정할 수 있다.
이와 같이 객체 추적 모듈(290)은 상기 위치 유사도 및 상기 생김새 유사도 판단에 따라 상기 후보 객체(Ca_obj)와 상기 추적 객체(Tr_obj)의 동일성을 판단하고, 상기 후보 객체(Ca_obj)와 상기 추적 객체(Tr_obj)를 동일한 객체로 판단하는 경우 상호 매칭되었다고 정의한다.
한편, 해당 영상 프레임(예컨대, k_frame_am)에 여러 객체가 중첩될 정도로 밀도가 높은 경우, 즉 상기 추정된 위치의 일정 범위 내에서 복수의 후보 객체들(예컨대, Ca_obj1 ~ Ca_obj3)이 검출되는 경우도 있을 수 있다.
이와 같은 경우일 때, 객체 추적 모듈(290)은 상기 복수의 후보 객체들(Ca_obj1 ~ Ca_obj3) 각각에 대하여 추적 객체(Tr_obj)와의 상기 생김새 유사도및 상기 위치 유사도를 대비함으로써 매칭 여부를 판단한다.
이때, 상기 생김새 유사도와 상기 위치 유사도에 소정 비율에 따른 가중치를 부여하고, 상기 판단된 생김새 유사도 및 상기 위치 유사도에 상기 부여한 가중치를 적용한 결과를 종합하여 상기 복수의 후보 객체들(Ca_obj1 ~ Ca_obj3) 중 추적 객체(Tr_obj)와 동일한 객체로 판단되는 후보 객체를 매칭한다.
실시 예에 따라, 상기 생김새 유사도에 대해서는 1보다 큰 소정값이 상기 가중치로 설정될 수 있고, 상기 위치 유사도에 대해서는 1보다 작은 소정값이 상기 가중치로 설정될 수 있다.
이는 객체간 동일성 판단 시, 객체 간 생김새 유사도가 객체 간 위치 유사도보다 더 중요한 비교 정보로 볼 수 있기 때문인데, 영상 프레임 환경 등의 영향으로 생김새 유사도에 비중을 높게 부여하기 어려운 경우(객체 자체가 인식되지 않는 경우나 키 포인트 별로 모든 특징 벡터가 추출되지 않은 경우, 영상 내 조명 환경 변화, 객체의 자세 변화 등)에는 위치 유사도에 더 높은 가중치가 설정될 수 있음을 물론이다.
예컨대 상기 추정된 위치와 인접하는 소정 범위 내에 아무런 객체가 검출되지 않는 경우에, 객체 추적 모듈(290)은 상기 소정 범위 밖에서 검출된 후보 객체들(예컨대, Ca_obj4 ~ Ca_obj) 각각에 대하여 추적 객체(Tr_obj)와의 상기 생김새 유사도 및 상기 위치 유사도를 대비함으로써 매칭 여부를 판단하되, 상기 위치 유사도에 대해서는 1보다 큰 소정값을 상기 가중치로 설정할 수 있고, 상기 생김새 유사도에 대해서는 1보다 작은 소정값을 상기 가중치로 설정할 수 있다.
한편, 이전 영상 프레임들(1_frame_am ~ k-1_frame_am)에서 검출은 되었으나 추적에 계속 실패한 객체(Un_obj)가 존재할 수 있고, 상기 추적에 실패한 객체(Un_obj)의 현재 영상 프레임(k_frame_am)에서의 추정 위치와 인접하는 소정 범위 내에 아무런 객체가 검출되지 않는 경우가 있을 수 있다.
이러한 경우에 객체 추적 모듈(290)은 상기 위치 유사도에 대한 상기 가중치를 0으로 설정하여, 상기 위치 유사도와는 무관하게 상기 생김새 유사도 만으로 객체 간 매칭을 수행할 수 있다.
상기와 같은 매칭 과정을 통해서도 매칭에 실패한 객체(Un_obj)에 대해서는 상기 칼만 필터를 통해 예측한 위치를 현재 영상 프레임(k_frame_am)에서의 객체 위치로 업데이트 한다.
또한, 일정 회수 이상 연속으로 매칭에 실패한 경우에 해당 객체는 해당 영상 프레임 내에서 사라졌다고 판단(예컨대, 버스 등 차량 탑승, 지하철 역으로 내려감)하고 더 이상 추적을 하지 않는다.
도 5는 본 발명의 일 실시 예에 따른 동적 카메라 영상 내의 객체를 실시간 추적하는 방법을 설명하기 위한 순서도이다.
도 1 내지 도 5를 참조하면, 수평 이동, 수직 이동, 줌 조정이 가능한 팬틸트줌(Pan-Tilt-Zoom, PTZ) 카메라로 구현된 영상 촬영 카메라(100)가 이동하며 촬영한 이동 영상 프레임들(1_frame 내지 n_frame)을 영상 분석 서버(200)로 전송한다(S100).
영상 분석 서버(200)의 카메라 움직임 추정 모듈(230)은 영상 촬영 카메라(100)를 통해 전송된 이동 영상 프레임들(1_frame 내지 n_frame)을 수신하고(S150), 해당 영상 프레임에 일정 간격으로 배치된 격자점들로 구성된 격자(Grid)를 생성한다(S200).
이후, 카메라 움직임 추정 모듈(230)은 해당 영상 프레임들의 픽셀값을 컬러 값이 아닌 무채색 스케일, 즉 그레이 스케일(gray scale)로 변환한다(S210).
순차적으로, 카메라 움직임 추정 모듈(230)은 격자점들 각각에 대해 이전 영상 프레임(예컨대, k-1_frame) 대비 현재 영상 프레임(k_frame)에서의 그레이 스케일 값 변화량을 계산하고, 상기 계산된 그레이 스케일 값 변화량이 소정 기준치 이상인 경우에만 해당 격자점을 상기 특징점으로 선별한다(S230).
이후, 카메라 움직임 추정 모듈(230)은 소정의 광학 흐름 방법을 통해 현재 영상 프레임(k_frame)에서 추출한 특징점들이 다음 영상 프레임(k+1_frame)의 어느 위치로 이동했는지 추정한다(S250).
실시 예에 따라, 상기 광학 흐름 방법으로 추출한 특징점에 대한 광학 흐름을 분석할 수 있고 알고리즘 소요 시간 대비 정확성이 높아 실시간 영상에 가장 적합한 피라미드 루카스 카나에 알고리즘을 이용할 수 있다.
순차적으로, 카메라 움직임 추정 모듈(230)은 현재 영상 프레임(k_frame)에서의 특징점 위치 정보와 다음 영상 프레임(k+1_frame)에 대해 추정한 특징점의 위치 정보를 이용하여 특징점 쌍(현재 프레임에서의 특징점과 다음 프레임에서 추정된 특징점)의 이동 벡터를 구한다(S270).
이어서, 카메라 움직임 추정 모듈(230)은 상기 구한 이동 벡터 전체에 대해 이차원 히스토그램을 계산하여 최고 빈도의 이동 벡터들을 결정한다(S290).
이때, 상기 결정된 최고 빈도에 해당하는 이동 벡터들은 배경의 이동 벡터, 즉 영상 촬영 카메라(100)의 움직임과 관련된 이동 벡터가 된다.
한편, 카메라 움직임 보상 모듈(250)은 카메라 움직임 추정 모듈(230)로부터 결정된 최고 빈도의 이동 벡터들을 통해, 이전 영상 프레임(k-1_frame) 내의 특정 특징점들을 현재 영상 프레임(k_frame)의 특정 위치로 변환시키기 위한 호모그래피 행렬(Homography matrix)을 계산한다(S300).
이때, 상기 특정 특징점은 이들에 대한 특징점 쌍의 이동 벡터가 상기 결정된 최고 빈도의 이동 벡터들에 포함되는 특징점을 의미하며, 상기 호모그래피 행렬을 계산한다는 것은 영상 촬영 카메라(100)의 움직임을 추정한다는 것과 동일한 의미이다.
순차적으로, 카메라 움직임 보상 모듈(250)은 현재 영상 프레임(k_frame) 내의 픽셀들에 대해 상기 계산한 호모그래프 행렬의 역변환을 적용하여 영상 촬영 카메라(100) 움직임을 제거한 보상 영상 프레임들(예컨대, 1_frame_am 내지 n_frame_am)을 생성한다(S330).
카메라 움직임 보상 모듈(250)은 상기와 같이 영상 촬영 카메라(100)의 움직임을 제거하여 생성한 보상 영상 프레임들(1_frame_am 내지 n_frame_am)을 객체 검출 모듈(270)로 전송한다(S350).
객체 검출 모듈(270)은 카메라 움직임 보상 모듈(250)로부터 전송된 보상 영상 프레임들(1_frame_am 내지 n_frame_am) 내에서 추적의 대상이 되는 객체(예컨대, 사람)를 검출하고(S400), 검출된 객체의 생김새를 표현하는 특징 벡터를 추출한다(S430).
본 발명의 일 실시 예에 따른 객체 검출 모듈(270)은 사람의 신체 부위에 대한 각 키 포인트(예컨대, 눈, 코, 입, 어깨, 팔꿈치, 손목, 허리, 무릎, 발목 등의 신체 부분)를 인식하여 역으로 사람의 전체 영역을 추정하는 방식을 사용하여 보다 정밀하게 사람을 검출할 수 있다(S400).
이후 객체 검출 모듈(270)은 검출된 객체의 키 포인트 별 픽셀값에서 얻어지는 특징 벡터(생김새 벡터)를 추출한다(S430).
순차적으로, 객체 추적 모듈(290)은 칼만 필터(Kalman Filter)를 이용해 상기 설명에서와 같이 이전 영상 프레임(예컨대, k-1_frame_am)까지 추적 중이던 객체(예컨대, 추적 객체(Tr_obj))에 대하여 현재 프레임(예컨대, k_frame_am)에서 존재할 것이라 예측되는 위치를 추정한다(S500).
이후, 객체 추적 모듈(290)은 객체 검출 모듈(270)로부터 상기 추정된 위치와 인접하는 소정 범위 내에서 검출된 후보 객체들(예컨대, Ca_obj1 내지 Ca_obj3) 또는 상기 소정 범위 밖에서 검출된 후보 객체들(예컨대, Ca_obj4 내지 Ca_obj6)과 상기 추적 중이던 객체(Tr_obj)를 대비하여 매칭 여부를 판단한다(S550).
이때, 상기 매칭이란 객체 추적 모듈(290)이 상기 대비시 상기 후보 객체(Ca_obj)와 상기 추적 객체(Tr_obj)가 동일한 객체로 판단되는 경우를 의미한다.
객체 추적 모듈(290)이 상기 후보 객체와 추적 객체를 대비하여 매칭 여부를 판단하는 방법(S550)은 앞서 설명한 바 있으므로 중복되는 설명은 생략한다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능하다.
따라서, 본 발명에 개시된 실시 예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
10 : 추적 시스템
100 : 영상 촬영 카메라
200 : 영상 분석 서버
230 : 카메라 움직임 추정 모듈
250 : 카메라 움직임 보상 모듈
270 : 객체 검출 모듈
290 : 객체 추적 모듈

Claims (10)

  1. 수평 이동, 수직 이동 및 회전이 가능하며, 특정 영역을 이동하며 촬영한 이동 영상 프레임들을 생성하는 영상 촬영 카메라 및
    상기 영상 촬영 카메로부터 생성한 이동 영상 프레임들에 대하여 상기 영상 촬영 카메라의 움직임에 따른 이동 벡터들을 호모그래피 역변환함으로써 상기 영상 촬영 카메라의 움직임을 제거한 보상 영상 프레임들을 생성하고, 상기 생성한 보상 영상 프레임들로부터 키 포인트에 따라 탐지된 객체를 위치 유사도 및 생김새 유사도에 따라 추적하는 영상 분석 서버를 포함하며,
    상기 영상 분석 서버는,
    상기 이동 영상 프레임들의 픽셀값을 그레이 스케일로 변환하고, 상기 이동 영상 프레임들 중 이전 영상 프레임에 일정 간격으로 배치된 격자점들로 구성된 격자를 생성하여 상기 격자점들 각각에 대해 상기 이전 영상 프레임 대비 현재 영상 프레임에서의 그레이 스케일 값 변화량이 소정 기준치 이상인 격자점을 특징점으로 선별하며, 피라미드 루카스 카나에 알고리즘을 통해 상기 선별한 특징점들의 다음 영상 프레임에서의 예상 위치를 추정하여 특징점 쌍의 이동 벡터들을 구하고, 상기 특징점 쌍의 이동 벡터들에 대해 이차원 히스토그램을 계산하여 최고 빈도의 이동 벡터들을 상기 영상 촬영 카메라의 움직임에 따른 이동 벡터들로 산출하는 카메라 움직임 추정 모듈;
    상기 이동 영상 프레임들에 대하여 상기 산출한 이동 벡터들을 호모그래피 역변환함으로써 상기 영상 촬영 카메라의 움직임을 제거한 보상 영상 프레임들을 생성하는 카메라 움직임 보상 모듈;
    상기 보상 영상 프레임들로부터 객체의 각 부분에 따른 상기 키 포인트를 인식하여 상기 객체를 탐지하는 객체 검출 모듈; 및
    상기 위치 유사도 및 생김새 유사도에 따라 상기 탐지된 객체를 추적하는 객체 추적 모듈;을 포함하는 동적 카메라 영상 내의 객체를 실시간 추적하는 시스템.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서, 상기 카메라 움직임 보상 모듈은,
    상기 영상 촬영 카메라의 움직임에 따른 이동 벡터들을 기초로 상기 이동 영상 프레임들 중 이전 영상 프레임 내의 특징점들을 현재 영상 프레임의 특정 위치로 호모그래피 변환시키기 위한 호모그래피 행렬을 계산하고,
    상기 계산한 호모그래피의 역변환을 상기 현재 영상 프레임의 모든 픽셀에 적용하여 상기 이전 영상 프레임 대비 상기 현재 영상 프레임에서의 상기 영상 촬영 카메라 움직임을 제거한 보상 영상 프레임들을 생성하는 것을 특징으로 하는 동적 카메라 영상 내의 객체를 실시간 추적하는 시스템.
  5. 제1항에 있어서, 상기 객체 검출 모듈은,
    상기 인식한 키 포인트에 따라 상기 탐지한 객체의 생김새를 나타내는 특징 벡터를 추출하는 것을 특징으로 하는 동적 카메라 영상 내의 객체를 실시간 추적하는 시스템.
  6. 제1항에 있어서, 상기 객체 추적 모듈은,
    칼만 필터를 이용해 상기 객체 검출 모듈로부터 탐지된 객체들 중 이전 영상 프레임까지 추적 중이던 추적 객체에 대하여 현재 영상 프레임에서 존재할 것이라 예측되는 위치를 추정하고,
    상기 객체 검출 모듈에 의해 상기 현재 영상 프레임에서 탐지된 후보 객체들의 위치와 상기 칼만 필터를 이용해 추정한 상기 추적 객체의 위치를 비교하여 상기 위치 유사도를 판단하고,
    상기 추적 객체의 특징 벡터와 상기 후보 객체들의 특징 벡터를 비교하여 상기 생김새 유사도를 판단하며,
    상기 판단한 위치 유사도 및 상기 생김새 유사도에 따라 상기 추적 객체와 상기 후보 객체 간 동일성을 판단하여 상기 추적 객체를 추적하는 것을 특징으로 하는 동적 카메라 영상 내의 객체를 실시간 추적하는 시스템.
  7. 제6항에 있어서, 상기 객체 추적 모듈은,
    상기 판단한 위치 유사도 및 상기 생김새 유사도 각각에 소정 비율에 따른 가중치를 부여하여 상기 추적 객체와 상기 후보 객체간 동일성을 판단하되,
    상기 추정한 추적 객체의 위치와 인접하는 소정 범위 내에서 상기 후보 객체들이 탐지된 경우에는 상기 위치 유사도에 상기 생김새 유사도보다 큰 가중치를 부여하고, 상기 추정한 추정된 위치와 인접하는 소정 범위 밖에서 상기 후보 객체들이 탐지된 경우에는 상기 생김새 유사도에 상기 위치 유사도보다 큰 가중치를 부여하는 것을 특징으로 하는 동적 카메라 영상 내의 객체를 실시간 추적하는 시스템.
  8. 영상 촬영 카메라가 이동하며 촬영한 이동 영상 프레임들을 카메라 움직임 추정 모듈로 전송하는 단계;
    상기 카메라 움직임 추정 모듈이 상기 전송된 이동 영상 프레임들에서 상기 영상 촬영 카메라에 대한 이동 벡터를 계산하여 상기 영상 촬영 카메라의 움직임을 추정하는 단계;
    카메라 움직임 보상 모듈이 상기 이동 영상 프레임들에서 상기 추정한 영상 촬영 카메라의 움직임을 제거한 보상 영상 프레임들을 생성하여 객체 검출 모듈로 전송하는 단계;
    상기 객체 검출 모듈이 상기 전송된 보상 영상 프레임들 중 해당 보상 영상 프레임에서 추적 객체를 검출하고, 상기 검출된 추적 객체의 특징 벡터를 추출하는 단계;
    객체 추적 모듈이 칼만 필터를 이용하여 상기 해당 보상 영상 프레임 이후의 보상 영상 프레임에서 상기 추적 객체의 예상 위치를 추정하는 단계;
    상기 객체 검출 모듈이 상기 해당 보상 영상 프레임 이후의 보상 영상 프레임에서 적어도 하나 이상의 후보 객체들을 검출하고, 상기 검출된 후보 객체의 특징 벡터를 추출하는 단계; 및
    상기 객체 추적 모듈이 상기 추정한 예상 위치와 인접하는 소정 범위 내 또는 상기 소정 범위 외에서 검출된 상기 후보 객체들과 상기 추적 객체 상호 간의 위치 유사도 및 상기 추출한 특징 벡터에 따른 생김새 유사도를 대비하여 매칭 여부를 판단하는 단계;를 포함하고,
    상기 카메라 움직임 추정 모듈이 상기 영상 촬영 카메라의 움직임을 추정하는 단계는,
    상기 전송된 이동 영상 프레임들의 픽셀값을 그레이 스케일로 변환하는 단계와 상기 이동 영상 프레임들에 대해 일정 간격으로 배치된 격자점들로 구성된 격자를 생성하는 단계와 상기 격자점들 각각에 대해 이전 영상 프레임 대비 현재 영상 프레임에서의 그레이 스케일 값 변화량이 소정 기준치 이상인 격자점을 특징점으로 선별하는 단계와 소정의 광학 흐름 방법을 통해 상기 특징점들의 다음 영상 프레임에 대한 위치를 추정하는 단계와 상기 현재 영상 프레임에서 선별한 특징점과 상기 추정한 다음 영상 다음 프레임서의 특징점을 이용하여 특징점 쌍의 이동 벡터들을 구하는 단계 및 상기 구한 이동 벡터들에 대해 이차원 히스토그램을 계산하여 최고 빈도의 이동 벡터들을 결정하여 상기 영상 촬영 카메라에 대한 이동 벡터를 계산하는 단계를 포함하는 동적 카메라 영상 내의 객체를 실시간 추적하는 방법.
  9. 삭제
  10. 제8항에 있어서, 상기 카메라 움직임 보상 모듈이 상기 보상 영상 프레임들을 생성하여 객체 검출 모듈로 전송하는 단계는,
    상기 결정한 최고 빈도의 이동 벡터들을 통해, 상기 이전 영상 프레임 내의 특징점들을 상기 현재 영상 프레임의 특정 위치로 변환시키기 위한 호모그래피 행렬을 계산하는 단계;
    상기 이동 영상 프레임 내의 픽셀들에 대해 상기 계산한 호모그래프 행렬의 역변환을 적용하여 상기 영상 촬영 카메라 움직임을 제거한 상기 보상 영상 프레임들을 생성하는 단계; 및
    상기 생성한 보상 영상 프레임들을 상기 객체 검출 모듈로 전송하는 단계;를 포함하는 동적 카메라 영상 내의 객체를 실시간 추적하는 방법.
KR1020210018306A 2021-02-09 2021-02-09 동적 카메라 영상 내의 객체를 실시간 추적하는 시스템 및 방법 KR102614895B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210018306A KR102614895B1 (ko) 2021-02-09 2021-02-09 동적 카메라 영상 내의 객체를 실시간 추적하는 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210018306A KR102614895B1 (ko) 2021-02-09 2021-02-09 동적 카메라 영상 내의 객체를 실시간 추적하는 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20220114819A KR20220114819A (ko) 2022-08-17
KR102614895B1 true KR102614895B1 (ko) 2023-12-19

Family

ID=83110312

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210018306A KR102614895B1 (ko) 2021-02-09 2021-02-09 동적 카메라 영상 내의 객체를 실시간 추적하는 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR102614895B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117593330B (zh) * 2023-11-23 2024-06-14 四川省寰宇众恒科技有限公司 一种可视化的实时振动监测方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101523740B1 (ko) 2014-01-03 2015-05-28 (주)유디피 공간 매핑을 이용한 객체 추적 장치 및 방법
JP2020107349A (ja) * 2014-09-26 2020-07-09 日本電気株式会社 物体追跡システム、物体追跡方法、プログラム
KR102141646B1 (ko) * 2019-01-09 2020-08-05 국방과학연구소 비고정 카메라에 의해 촬영되는 영상으로부터 이동체를 검출하는 방법 및 장치

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102153607B1 (ko) * 2016-01-22 2020-09-08 삼성전자주식회사 영상에서의 전경 검출 장치 및 방법
KR102198920B1 (ko) * 2019-02-28 2021-01-06 네이버 주식회사 온라인 학습을 이용한 객체 트래킹을 위한 방법 및 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101523740B1 (ko) 2014-01-03 2015-05-28 (주)유디피 공간 매핑을 이용한 객체 추적 장치 및 방법
JP2020107349A (ja) * 2014-09-26 2020-07-09 日本電気株式会社 物体追跡システム、物体追跡方法、プログラム
KR102141646B1 (ko) * 2019-01-09 2020-08-05 국방과학연구소 비고정 카메라에 의해 촬영되는 영상으로부터 이동체를 검출하는 방법 및 장치

Also Published As

Publication number Publication date
KR20220114819A (ko) 2022-08-17

Similar Documents

Publication Publication Date Title
Hu et al. Moving object detection and tracking from video captured by moving camera
JP5001260B2 (ja) オブジェクト追跡方法及びオブジェクト追跡装置
US9904852B2 (en) Real-time object detection, tracking and occlusion reasoning
CN103997624B (zh) 重叠域双摄像头目标跟踪***及方法
WO2014171258A1 (ja) 情報処理システム、情報処理方法及びプログラム
WO2017221643A1 (ja) 画像処理装置、画像処理システム、および画像処理方法、並びにプログラム
JP5459674B2 (ja) 移動物体追跡システムおよび移動物体追跡方法
JP2013535896A (ja) 熱画像座標を用いた保安用カメラ追跡監視システム及び方法
JP2009143722A (ja) 人物追跡装置、人物追跡方法及び人物追跡プログラム
JP2010063001A (ja) 人物追跡装置および人物追跡プログラム
US11132538B2 (en) Image processing apparatus, image processing system, and image processing method
JP2007142527A (ja) 移動体監視システム、移動体特徴量算出装置およびカメラ間移動体照合追跡装置
US20220366570A1 (en) Object tracking device and object tracking method
KR20150021351A (ko) 영상 정합 장치 및 이를 이용한 영상 정합 방법
KR20100104272A (ko) 행동인식 시스템 및 방법
KR102614895B1 (ko) 동적 카메라 영상 내의 객체를 실시간 추적하는 시스템 및 방법
Monari et al. A real-time image-to-panorama registration approach for background subtraction using pan-tilt-cameras
JP6798609B2 (ja) 映像解析装置、映像解析方法およびプログラム
KR102450466B1 (ko) 영상 내의 카메라 움직임 제거 시스템 및 방법
Sincan et al. Moving object detection by a mounted moving camera
JP5539565B2 (ja) 撮像装置及び被写体追跡方法
Harasse et al. Human model for people detection in dynamic scenes
KR20230081016A (ko) 복수의 카메라를 이용하여 객체를 추적하는 장치, 방법 및 컴퓨터 프로그램
KR20210001438A (ko) 영상에서의 얼굴 인덱싱 방법 및 장치
Demyanova et al. Improved 2D Human Pose Tracking Using Optical Flow Analysis

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant