KR102375145B1 - 비디오 데이터 통합 분석 및 관리 시스템 - Google Patents

비디오 데이터 통합 분석 및 관리 시스템 Download PDF

Info

Publication number
KR102375145B1
KR102375145B1 KR1020200054310A KR20200054310A KR102375145B1 KR 102375145 B1 KR102375145 B1 KR 102375145B1 KR 1020200054310 A KR1020200054310 A KR 1020200054310A KR 20200054310 A KR20200054310 A KR 20200054310A KR 102375145 B1 KR102375145 B1 KR 102375145B1
Authority
KR
South Korea
Prior art keywords
video
analysis
video data
server
database
Prior art date
Application number
KR1020200054310A
Other languages
English (en)
Other versions
KR20210136286A (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 KR1020200054310A priority Critical patent/KR102375145B1/ko
Priority to US17/923,247 priority patent/US11907291B2/en
Priority to PCT/KR2020/008630 priority patent/WO2021225217A1/ko
Publication of KR20210136286A publication Critical patent/KR20210136286A/ko
Application granted granted Critical
Publication of KR102375145B1 publication Critical patent/KR102375145B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/78Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/783Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/71Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/73Querying
    • G06F16/732Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/74Browsing; Visualisation therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/75Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/78Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/783Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F16/7837Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using objects detected or recognised in the video content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/285Selection of pattern recognition techniques, e.g. of classifiers in a multi-classifier system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/10Recognition assisted with metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • H04N21/4828End-user interface for program selection for searching program descriptors

Abstract

비디오 데이터를 통합적으로 분석 및 관리하기 위한 시스템은, 외부 입력 비디오 제공 장치로부터 비디오 데이터를 수신하도록 구성된 라우팅 서버와, 상기 수신된 비디오 데이터를 저장하도록 구성된 비디오 데이터베이스와, 상기 비디오 데이터를 분석하도록 구성된 복수의 비디오 분석 서버를 포함하는 비디오 분석 서버 클러스터와, 상기 비디오 데이터의 메타데이터를 저장하도록 구성된 메타데이터 데이터베이스와, 그리고 상기 메타데이터 데이터베이스 및 상기 비디오 데이터베이스를 검색하도록 구성된 비디오 검색 서버를 포함할 수 있다. 상기 시스템은 본 개시에서 설명되는 다양한 실시예와 같이, 여러 채널로부터 수신되는 다양한 비디오 데이터를 통합적으로 분석하여 그 결과를 제공함과 더불어 사용자의 검색 요구에 따라 신속하고 정확한 검색 결과를 제공할 수 있다.

Description

비디오 데이터 통합 분석 및 관리 시스템 {INTEGRATED VIDEO DATA ANALYSIS AND MANAGEMENT SYSTEM}
본 개시는 비디오 데이터를 통합적으로 분석하여 관리하는 방법 및 시스템에 관한 것이다. 구체적으로, 본 개시는 입력 비디오를 제공하는 복수 개의 채널로부터 입력되는 다수의 비디오 데이터를, 라우팅 서버를 통해 복수 개의 비디오 분석 서버를 포함하는 비디오 분석 서버 클러스터의 특정 비디오 분석 서버에 할당하여 비디오 데이터에 촬영된 객체를 인식 및 분석하고 분석된 비디오 데이터를 외부 영상 출력 장치에 제공하는 한편, 영상 인식 과정에서 객체들을 카테고리 별로 분류하여 각 객체의 메타데이터를 추출하고 추출된 메타데이터를 추후 검색이 용이한 형태로 데이터베이스화하며, 객체 인식에 있어 다중 사용자의 딥러닝 참여를 가능하게 하여 보다 정교한 인식을 가능하게 하고, 딥러닝을 통해 학습된 객체 데이터의 유통 및 활용을 가능하게 하는 방법 및 시스템을 제공한다.
여기에서 달리 언급하지 않으면 본 섹션에서 기술되는 내용은 본 출원에서의 청구범위의 선행 기술이 아니며, 본 섹션에 기재하였다는 이유로 선행 기술로 인정되어서는 안 된다.
일반적인 비디오 데이터로부터 정보 수집을 위한 시스템으로는, 일정한 지역이나 장소에 고정식 또는 이동식으로 설치된 카메라를 통하여 입력되는 영상 정보를 수집하는 CCTV 보안 시스템, 지능형 영상 분석 기법을 적용하여 개별 오브젝트를 분류하는 객체 인식 시스템, 주행 중인 차량의 속도 감지 등 차량에 관한 다양한 유형의 영상 정보 수집을 위한 차량 번호 판독 시스템 등이 알려져 있다.
이러한 다양한 시스템들은 각각의 목적을 위한 촬영 장치로부터 입력된 특정의 정보를 분석하고 이 분석된 특정 정보를 사용자에게 제공할 뿐이다. 또한, 이러한 시스템들은 입력 비디오 데이터를 제공하는 촬영 장치, 즉 처리 가능한 채널의 수에 일정 제한이 있어 많은 수의 채널을 병렬적으로 부가하는 것이 곤란할 뿐만 아니라, 여러 채널로부터 동시다발적으로 입력되는 비디오 데이터를 원활하게 처리하는 데에 문제가 있다.
한편, 여러 채널로부터 입력되는 비디오 데이터를 처리하는 시스템에 있어서, 각각의 비디오 촬영 장치마다 생성하는 비디오의 특징이 상이하고 이에 따른 인식 방법과 알고리즘이 상이하게 되므로, 비디오 채널이 새로 추가될 때마다 영상 인식 및 처리 시스템의 구조를 변경해야 하는 번거로움이 존재한다.
또한, 분석 및 인식된 객체 데이터에 대해 사용자가 쉽고 빠르게 검색할 수 있는 다채널 분석 시스템이 요구되며, 그 분석에 있어 딥러닝을 통한 모델링 및 그 모델링에 다중 사용자가 참여하게 된다면 훨씬 신뢰도 높은 비디오 분석 시스템이 가능하게 된다.
본 개시는 위와 같은 전술한 과제 내지는 문제들 및/또는 여러 다른 문제들을 해결하기 위한 것이다.
보다 상세하게는, 다양한 입력 비디오를 제공하는 입력 비디오 제공 장치로부터 수신된 여러 비디오 데이터들을 효율적인 검색을 위한 비디오 데이터베이스로 구성하고, 이러한 여러 비디오 데이터들을 해당 비디오의 종류나 특성에 따라 비디오 분석 서버 클러스터로 구성된 복수의 비디오 분석 서버 중 특정 비디오 분석 서버에 할당하여 비디오 분석 및 인식을 수행함으로써 인식 효율을 높이며, 분석 및 인식된 비디오 데이터를 사용자의 요구 조건에 맞는 포맷의 비디오로 제공하고, 또한 추후 사용자 단말로부터 검색 쿼리에 따라 특정 객체가 포함된 비디오의 해당 채널 및 시간을 효율적으로 특정하여 이를 비디오 데이터베이스에서 신속하게 검색할 수 있는 시스템을 제공하는 데에 그 목적이 있다.
또한, 본 개시는 외부 다중 사용자를 위한 딥러닝 플랫폼 웹 인터페이스를 통해 객체 인식을 위한 딥러닝에 여러 일반 사용자 내지는 딥러닝 전문가의 효과적인 참여를 가능하게 하며, 이러한 딥러닝을 통해 생성된 비디오 분석 모델 내지는 영상 인식 알고리즘을 평가 및 저장하고 나아가 이들을 타 시스템에서 유용하게 사용될 수 있고 독립된 경제적 가치를 가진 어플리케이션으로 적용될 수 있도록 하는 데에 그 목적이 있다.
본 개시의 일 실시 예에 따르는 비디오 데이터의 통합 분석 및 관리 시스템에 있어서, 상기 시스템은 외부 입력 비디오 제공 장치로부터 비디오 데이터를 수신하도록 구성된 라우팅 서버; 상기 수신된 비디오 데이터를 저장하도록 구성된 비디오 데이터베이스; 상기 비디오 데이터를 분석하도록 구성된 복수의 비디오 분석 서버를 포함하는 비디오 분석 서버 클러스터; 상기 비디오 데이터의 메타데이터를 저장하도록 구성된 메타데이터 데이터베이스; 및 상기 메타데이터 데이터베이스 및 상기 비디오 데이터베이스를 검색하도록 구성된 비디오 검색 서버를 포함할 수 있다. 여기서, 상기 라우팅 서버는 수신된 비디오 데이터의 특성에 따라 상기 비디오 분석 서버 클러스터의 복수의 비디오 분석 서버 중 특정 비디오 분석 서버에 상기 비디오 데이터의 분석을 할당하도록 더 구성될 수 있고, 상기 수신된 비디오 데이터의 특성은 상기 비디오 데이터를 촬영한 채널의 종류, 상기 채널의 특성 및 상기 비디오 데이터에 촬영된 객체들 중에서 인식 대상이 되는 객체의 종류 중 적어도 하나를 포함할 수 있다.
또한, 상기 비디오 분석 서버 클러스터의 상기 복수의 비디오 분석 서버 중 상기 라우팅 서버로부터 상기 비디오 데이터의 분석을 할당 받은 특정 비디오 분석 서버는 상기 비디오 데이터를 분석하여 이에 포함된 하나 이상의 객체를 인식하고 그 인식 결과에 따라 상기 메타데이터를 생성하도록 더 구성될 수 있고, 상기 특정 비디오 분석 서버는 상기 생성된 메타데이터에 기초하여 인버스 피쳐(inverse feature)를 생성하도록 더 구성될 수 있으며, 상기 메타데이터 데이터베이스는 상기 생성된 인버스 피쳐를 저장하도록 더 구성될 수 있다. 그리고, 상기 비디오 검색 서버는 외부의 사용자 단말로부터 비디오 검색 쿼리를 수신하고, 수신된 검색 쿼리에 기초하여 상기 메타데이터 데이터베이스 및 상기 비디오 데이터 베이스 중 적어도 하나를 검색하도록 더 구성될 수 있으며, 또한, 상기 비디오 검색 서버는 상기 검색 쿼리에 기초하여 상기 메타데이터 데이터베이스를 검색하여 상기 검색 쿼리에서 요구되는 비디오 데이터에 관한 정보를 입수하고, 입수된 정보에 기초하여 상기 비디오 데이터베이스를 검색하여 상기 검색 쿼리에서 요구되는 비디오 데이터를 입수하도록 더 구성될 수 있다.
한편, 상기 시스템은, 상기 비디오 분석 서버 클러스터의 분석 결과를 미리 정해진 포맷에 따른 그래픽 유저 인터페이스로 생성하도록 구성된 비디오 컨버터 및 상기 비디오 분석 서버 클러스터의 분석 결과 영상을 외부의 비디오 출력/제어 장치로 송신하고 외부의 사용자 단말로부터 비디오 검색 쿼리를 수신하도록 구성된 I/O 서버를 더 포함할 수 있다.
나아가, 상기 시스템은, 상기 비디오 데이터베이스에 저장된 비디오 데이터를 학습하여 비디오 분석 모델을 생성하도록 구성되는 딥러닝 서버와 상기 딥러닝 서버에서 생성된 비디오 분석 모델을 저장하도록 구성되는 학습데이터 결과값 데이터베이스를 더 포함할 수 있으며, 여기서 상기 딥러닝 서버는, 상기 비디오 분석 및 관리 시스템 외부의 다중 사용자를 위한 딥러닝 플랫폼 웹 인터페이스를 통해 접속한 사용자에게 비디오 데이터 학습을 위한 이지 트레이닝(easy training) 및 하드 트레이닝(hard training) 중 적어도 하나를 제공하도록 구성될 수 있다.
또한, 본 개시의 일 실시예에 따라 비디오 데이터의 통합적인 분석 및 관리를 위하여 비디오 분석 및 관리 시스템 내의 하나 이상의 컴퓨팅 장치에서 수행되는 방법은, 복수 개의 채널을 포함하는 입력 비디오 제공 장치 중 어느 한 채널로부터 비디오 데이터를 수신하는 단계; 상기 수신된 비디오 데이터를 상기 비디오 분석 및 관리 시스템 내의 복수의 비디오 분석 서버를 포함하는 비디오 분석 서버 클러스터 중 특정 비디오 분석 서버에 할당하는 단계; 상기 특정 비디오 분석 서버에서 상기 비디오 데이터를 분석하여 이에 포함된 하나 이상의 객체를 인식하는 단계; 및 상기 분석 및 객체 인식 결과에 기초하여 미리 설정된 포맷으로 그래픽 유저 인터페이스를 생성하는 단계를 포함할 수 있다. 상기 방법은 또한 상기 수신된 비디오 데이터를 상기 비디오 분석 및 관리 시스템 내의 비디오 데이터베이스에 저장하는 단계를 더 포함할 수 있으며, 여기서 상기 비디오 데이터베이스는 NoSQL 형태의 HBase 기반의 데이터베이스일 수 있다.
또한, 상기 방법은 상기 특정 비디오 분석 서버에서 상기 인식된 하나 이상의 객체에 관한 메타데이터를 생성하는 단계; 상기 특정 비디오 분석 서버에서 상기 생성된 메타데이터를 기초로 인버스 피쳐를 생성하는 단계; 및 상기 생성된 메타데이터 및 인버스 피쳐를 상기 비디오 분석 및 관리 시스템 내의 메타데이터 데이터베이스에 저장하는 단계를 더 포함할 수 있다.
본 개시의 다른 실시예에 따르면, 상기 방법은 외부 사용자 단말로부터 특정 객체의 검색에 관한 검색 쿼리를 수신하는 단계; 상기 수신된 검색 쿼리에 기초하여 상기 메타데이터 데이터베이스 및 상기 비디오 데이터 베이스 중 적어도 하나를 검색하는 단계; 및 상기 검색 결과를 상기 외부 사용자 단말로 송신하는 단계를 더 포함할 수 있다. 이 경우, 상기 방법은 상기 검색 결과가 상기 검색 쿼리에 적합한 지 여부를 판단하는 단계; 및 상기 판단 결과 적합하지 않은 경우, 상기 수신된 검색 쿼리에 기초하여 상기 메타데이터 데이터베이스 및 상기 비디오 데이터 베이스 중 적어도 하나를 검색하는 단계를 더 포함할 수 있다.
본 개시의 일 실시예에 따라 비디오 데이터의 통합적인 분석 및 관리를 위한 컴퓨터 프로그램을 저장한 컴퓨터 판독 가능 기록 매체의 상기 컴퓨터 프로그램에 포함된 명령어는, 복수 개의 채널을 포함하는 입력 비디오 제공 장치 중 어느 한 채널로부터 비디오 데이터를 수신하기 위한 적어도 하나의 명령어; 상기 수신된 비디오 데이터를 상기 비디오 분석 및 관리 시스템 내의 복수의 비디오 분석 서버를 포함하는 비디오 분석 서버 클러스터 중 특정 비디오 분석 서버에 할당하기 위한 적어도 하나의 명령어; 상기 특정 비디오 분석 서버에서 상기 비디오 데이터를 분석하여 이에 포함된 하나 이상의 객체를 인식하기 위한 적어도 하나의 명령어; 및 상기 분석 및 객체 인식 결과에 기초하여 미리 설정된 포맷으로 그래픽 유저 인터페이스를 생성하기 위한 적어도 하나의 명령어를 포함할 수 있다. 여기서, 상기 컴퓨터 프로그램은 외부 사용자 단말로부터 특정 객체의 검색에 관한 검색 쿼리를 수신하기 위한 적어도 하나의 명령어; 상기 수신된 검색 쿼리에 기초하여 상기 메타데이터 데이터베이스 및 상기 비디오 데이터 베이스 중 적어도 하나를 검색하기 위한 적어도 하나의 명령어; 및 상기 검색 결과를 상기 외부 사용자 단말로 송신하기 위한 적어도 하나의 명령어를 더 포함할 수 있다.
이상의 간단한 요약 및 효과에 관한 설명은 단순히 예시적인 것으로서 본 개시에서 의도한 기술적 사항을 제한하기 위한 것이 아니다. 이하의 상세한 설명과 첨부된 도면을 참조함으로써, 전술한 예시적인 실시 예들과 기술적 특징들에 더하여, 추가적인 실시 예와 기술적 특징들이 이해될 수 있을 것이다.
앞서 설명한 본 개시의 특징들과 기타 추가적인 특징들에 대해서는 첨부된 도면을 참조하여 이하에서 자세하게 설명한다. 이러한 도면들은 본 개시에 따르는 단지 몇 가지의 실시 예만을 도시한 것이며, 본 개시의 기술적 사상의 범위를 제한하는 것으로 간주되어서는 안 된다. 본 개시의 기술적 사상은 첨부된 도면을 사용하여 더 구체적이고 상세하게 기술될 것이다.
도 1은 본 개시의 일 실시 예에 따른 비디오 데이터의 통합 분석 및 관리 시스템의 구성도이다.
도 2는 본 개시의 다른 실시 예에 따른 비디오 데이터의 통합 분석 및 관리 시스템의 구성도이다.
도 3은 본 개시의 또 다른 실시 예에 따른 비디오 데이터의 통합 분석 및 관리 시스템의 구성도이다.
도 4a는 본 개시의 일 실시 예에 따라 입력 비디오 데이터로부터 추출한 메타데이터의 예를 도식적으로 도시한 도면이고, 도 4b는 본 개시의 일 실시 예에 따라 메타데이터에 기초하여 생성된 인버스 피쳐(inverse feature)의 예를 도식적으로 도시한 도면이다.
도 5는 입력 비디오 제공 장치의 채널들에 대한 채널 메타데이터의 예를 도시한 도면이다.
도 6은 비디오 분석 결과로서 비디오 출력/제어 장치에서 디스플레이되는 화면의 구체적인 예를 도시한 도면이다.
도 7은 본 개시의 적어도 일부 실시 예에 따라 비디오 데이터의 통합적인 분석 및 관리를 하기 위한 예시적인 프로세스를 도시한 도면이다.
도 8은 본 개시의 적어도 일부 실시 예에 따라 비디오 데이터의 검색을 위한 예시적인 프로세스를 도시한 도면이다.
도 9는 본 개시의 적어도 일부 실시 예에 따른 비디오 데이터를 통합 분석 및 관리하는 데 이용될 수 있는 예시적인 컴퓨터 프로그램 제품을 도시한 도면이다.
본 개시에서 사용되는 용어들은 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 개시에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 개시에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 개시에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 개시에서 정의된 용어일지라도 본 개시의 실시 예들을 배제하도록 해석될 수 없다.
앞서 설명한 본 개시의 특징들과 기타 추가적인 특징들에 대해서는 첨부된 도면을 참고하여 이하에서 자세하게 설명한다. 이러한 도면들은 본 개시에 따르는 단지 몇 가지의 실시 예들을 도시한 것이며, 본 개시의 기술적 사상의 범위를 제한하는 것으로 간주되어서는 안 된다. 본 개시의 기술적 사상은 첨부된 도면을 사용하여 더 구체적이고 상세하게 기술될 것이다.
도 1은 본 개시의 일 실시 예에 따른 비디오 데이터의 통합 분석 및 관리 시스템이다.
도 1을 참조하면, 비디오 데이터 통합 분석 및 관리 시스템(100)은 외부의 입력 비디오 제공 장치(110)로부터 입력 비디오를 제공받아 이를 처리하도록 구성될 수 있다. 비디오 데이터 통합 분석 및 관리 시스템(100)은 처리된 비디오 데이터를 비디오 출력/제어 장치(160)에 제공할 수 있다. 또한, 비디오 데이터 통합 분석 및 관리 시스템(100)은 사용자 단말(162)로부터 검색 쿼리를 입력 받아 해당 쿼리에 부합하는 비디오 데이터를 사용자 단말(162) 및/또는 비디오 출력/제어 장치(160)에 제공할 수 있다. 여기서, 사용자 단말(162)은 비디오 출력/제어 장치(160)와 연동되거나 혹은 이와 별개로 작동할 수 있다.
비디오 데이터 통합 분석 및 관리 시스템(100)과 입력 비디오 제공 장치(110), 비디오 출력/제어 장치(160) 및/또는 사용자 단말(162)과의 통신 연결은 유무선의 가능한 여러 방식으로 이루어질 수 있다. 이러한 통신 연결을 가능하게 하는 네트워크 방식의 일 예로는, RF, 3GPP(3rd Generation Partnership Project) 네트워크, LTE(Long Term Evolution) 네트워크, WIMAX(World Interoperability for Microwave Access) 네트워크, 인터넷(Internet), LAN(Local Area Network, 무선 LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), 블루투스(Bluetooth) 네트워크, NFC 네트워크, 위성 방송 네트워크, 아날로그 방송 네트워크, DMB(Digital Multimedia Broadcasting) 네트워크 등이 포함되나 이에 한정되지는 않는다.
입력 비디오 제공 장치(110)는 복수 개의 입력 비디오를 생성하는 장치를 포함할 수 있다. 이러한 입력 비디오 생성 장치로는 일반적인 CCTV와 같은 비디오 촬영 장치를 포함할 수 있다. 또한, 입력 비디오 생성 장치는 합성 비디오 발생기(synthetic video generator)와 같이 비디오 촬영 장치를 통해 획득한 실제 영상이 아닌 합성된 비디오를 생성하는 장치일 수 있다. 이러한 입력 비디오를 생성하는 여러 장치들은 각각 하나의 비디오 채널을 구성하며, 각 채널 별로 생성된 입력 비디오들은 원본 비디오 데이터로서 비디오 데이터의 통합 분석 및 관리 시스템(100)에 제공된다. 이하에서는, 입력 비디오 제공 장치(110)의 각 입력 비디오 생성 장치를 채널로도 호칭한다.
도 1에 따른 비디오 데이터 통합 분석 및 관리 시스템(100)은 라우팅 서버(120), 비디오 분석 서버 클러스터(130), 비디오 데이터베이스(140), 비디오 컨버터(150), 메타데이터 데이터베이스(170), I/O 서버(180) 및 비디오 검색 서버(190)를 포함할 수 있다. 여기서, I/O 서버(180)는 경우에 따라 생략 가능하며, 그러한 경우 비디오 컨버터(150)가 앞서 설명한 통신 연결을 통해 비디오 출력/제어 장치(160)에 처리된 비디오 데이터를 직접 제공할 수 있으며, 또한 사용자 단말(162)이 직접 비디오 검색 서버(190)와의 통신 연결을 통해 비디오 검색 작업을 수행할 수 있다.
라우팅 서버(120)는 입력 비디오 제공 장치(110)의 각 채널로부터 입력 비디오를 수신하여 비디오 데이터베이스(140)에 이를 원본 비디오 데이터로 저장할 수 있다. 비디오 데이터베이스(140)에 저장된 원본 비디오 데이터는 추후 사용자의 검색 요구에 따라 사용자 단말(162)로 제공될 수 있다.
또한, 라우팅 서버(120)는 입력 비디오 제공 장치(110)의 각 채널의 특성에 따라 특정 채널의 영상 처리를 비디오 분석 서버 클러스터(130) 내의 특정 서버로 라우팅할 수 있다.
비디오 분석 서버 클러스터(130)는 복수 개의 비디오 분석 서버들로 구성되며, 각각의 비디오 분석 서버는 고성능 비디오 분석이 가능하도록 고사양의 GPU를 하나 이상 탑재한 서버일 수 있다. 또한, 각각의 비디오 분석 서버는 특정의 비디오 분석에 적합하도록 설계될 수 있다. 예컨대, 비디오에 포함된 객체에 따라 사람의 인식 및 처리에 적합한 비디오 분석 서버, 차량의 인식 및 처리에 적합한 비디오 분석 서버 등으로 구분될 수 있다. 또한, 각각의 비디오 분석 서버는 특정 상황의 비디오 데이터의 처리에 적합하도록 설계될 수 있으며, 예컨대 터널 내에 설치된 카메라를 통해 촬영된 비디오와 같이 전체적으로 명도가 낮은 비디오 데이터의 처리에 적합한 비디오 분석 서버, 야외에 설치된 카메라를 통해 촬영된 비디오와 같이 전체적으로 명도가 높은 비디오 데이터의 처리에 적합한 비디오 분석 서버 등으로 구분될 수 있다. 또한, 각각의 비디오 분석 서버는 각 채널의 타입, 종류와 같은 채널 특성에 따라 해당 비디오 데이터의 처리에 적합하도록 설계될 수 있다. 예컨대, 채널이 CCTV와 같이 고정형의 고화질 비디오 데이터의 처리에 적합한 비디오 분석 서버, 채널이 드론과 같이 이동형의 저화질 비디오 데이터의 처리에 적합한 비디오 분석 서버 등으로 구분될 수 있다.
비디오 분석 서버 클러스터(130)의 각각의 비디오 분석 서버는 라우팅 서버로부터 할당 받은 특정 채널의 비디오 데이터를 분석하여 해당 비디오 데이터의 메타데이터를 추출한 후 메타데이터 데이터베이스(170)에 저장할 수 있다. 또한, 각 비디오 분석 서버는 추출된 메타데이터로부터 인버스 피쳐(inverse feature)를 생성하여 메타데이터 데이터베이스(170)에 저장할 수 있다. 이러한 메타데이터 및 인버스 피쳐의 구체적인 예에 대해서는 아래의 도 4를 참조하여 후술한다.
또한, 비디오 분석 서버 클러스터(130)의 각각의 비디오 분석 서버는 처리할 비디오 데이터의 채널에 따라 해당 채널의 특성에 맞는 영상인식 알고리즘을 적용하여 입력 비디오를 처리할 수 있다. 이러한 경우, 비디오 분석 서버는 각각의 채널의 속성에 관한 채널 메타 데이터베이스로부터 해당 채널의 메타데이터를 불러올 수 있으며, 이 채널 메타데이터에 적합한 영상인식 알고리즘을 적용하여 입력 비디오를 처리할 수 있다. 채널 메타데이터로는 카메라 ID, 카메라 IP, 인코딩 타입(예컨대, H.264, H.265 등), 카메라 타입(예컨대, CCTV, 드론 등), 화질(예컨대, HD, 4K 등), 영상 디바이스 종류(예컨대, 고정, 유동 등), 컨텐츠 카테고리(예컨대, 주차장, 시내 등), 카메라 위치, 카메라 높이, Tilt 각도, Pan 각도, 초당 디코딩 프레임수, 용도 등을 포함할 수 있으나, 이에 제한되지 않는다. 이러한 채널 메타데이터들의 집합인 채널 메타 데이터베이스는 메타데이터 데이터베이스(170) 또는 별도의 데이터베이스 형태로 저장되어, 비디오 분석 서버 클러스터(130)의 각각의 비디오 분석 서버에 의해 검색 및 이용될 수 있다. 이러한 채널 메타데이터의 구체적인 예 및 비디오 분석에 있어서의 그 이용에 대해서는 아래의 도 5를 참조하여 후술한다.
한편, 비디오 분석 서버 클러스터(130)의 각 비디오 분석 서버에서 인식 및 분석 처리된 각 채널의 입력 비디오는 비디오 컨버터(150)로 제공되며, 비디오 컨버터(150)에서는 인식 및 분석 처리된 입력 비디오들을 비디오 출력/제어 장치(160)에 전송하여 디스플레이하기에 적합한 소정의 포맷으로 변환하는 작업을 수행한다. 여기서, 소정의 포맷은 비디오 출력/제어 장치(160)의 사용자에 의해 미리 설정된 것일 수 있다. 비디오 컨버터(150)에 의해 소정의 포맷으로 변환된 입력 비디오는 I/O 서버(180)를 통해 비디오 출력/제어 장치(160)로 제공될 수 있다. 이러한 소정의 포맷 및 비디오 출력/제어 장치(160)에서 디스플레이되는 화면의 구체적인 예에 대해서는 아래의 도 6을 참조하여 후술한다.
비디오 통합 분석 및 관리 시스템(100)의 외부에서 접속되는 사용자 단말(162)의 사용자는 특정 검색 쿼리를 이용하여 사용자 단말(162)을 통해 특정 비디오 데이터의 검색을 비디오 통합 분석 및 관리 시스템(100)에 요청할 수 있다. 일 실시예에서, 사용자 단말(162)의 사용자는 비디오 출력/제어 장치(160)에서 보여지는 화면을 통해 검색할 객체를 특정하여 검색 쿼리를 작성할 수 있다. 이러한 검색 쿼리에는 특정 객체의 태그 또는 레이블과, 그 객체가 포함된 비디오를 제공한 채널과 그 장소 및/또는 시간 기간을 포함할 수 있다.
비디오 통합 분석 및 관리 시스템(100)의 I/O 서버(180)는 사용자 단말(162)로부터의 검색 쿼리를 수신하여 이를 비디오 검색 서버(190)에 제공할 수 있다. 앞서 설명한 I/O 서버(180)가 생략된 경우에, 사용자 단말(162)로부터의 검색 쿼리는 직접 비디오 검색 서버(190)에 제공될 수 있다.
비디오 검색 서버(190)는 우선 사용자 단말(162)로부터 전송된 검색 쿼리를 이용하여 메타데이터 데이터베이스(170)를 검색할 수 있다. 이 경우, 비디오 검색 서버(190)는 검색 쿼리에 포함된 검색하고자 하는 객체의 태그, 레이블 혹은 썸네일로 검색 대상 객체를 특정하고 메타데이터 데이터베이스(170)로부터 해당 객체가 포함된 비디오를 촬영한 채널과 촬영된 시간을 입수한다. 비디오 검색 서버(190)는 상기 입수된 해당 객체가 포함된 비디오를 촬영한 채널과 촬영한 시간에 기초하여 비디오 데이터베이스(140)를 검색하여 원본 비디오 데이터를 찾아 내며, 이 검색된 원본 비디오 데이터를 I/O 서버(180)를 통해 사용자 단말(162)로 제공할 수 있다. 비디오 검색 서버(190)가 메타데이터 데이터베이스(170) 및 비디오 데이터베이스(140)를 검색하여 사용자 단말(162)로부터의 검색 쿼리에 맞는 원본 비디오 데이터를 검색 및 제공하는 구체적인 실시 예에 대해서는 아래의 도 4를 기초로 보다 상세히 설명한다.
한편, 비디오 데이터베이스(140)는 일반적은 관계형 데이터베이스(relational database)로 구성될 수도 있으며, 실시 예에 따라 스키마를 미리 정의하지 않는 NoSQL 형태의 데이터베이스로 구성될 수 있다. 본 개시의 일 실시 예에 따르면, 비디오 데이터베이스(140)를 NoSQL 형태의 데이터베이스로 구성할 경우, 이를 HBase에 저장할 수 있다. HBase는 Column-Oriented No SQL로 분류되어 하나의 로우(row)에 많은 수의 컬럼(column)을 저장할 수 있으며, 본 개시의 비디오 데이터베이스(140)는 HBase의 이러한 속성을 이용하여, 특정 채널로부터 입력되는 입력 비디오를 컬럼 수의 제한 없이 하나의 로우로 생성할 수 있다.
비제한적인 예시로서, 비디오 데이터베이스(140)는 특정 채널로부터 수신된 입력 비디오를 일(day) 단위로 하나의 로우에 기록하며, 이 하나의 로우에는 입력 비디오를 1초 단위의 개별 파일로 생성할 수 있다. 이 경우, 하나의 로우에는 총 86,400(60초X60분X24시간)개의 파일, 즉 컬럼이 생성될 수 있다. 이러한 방식으로 비디오 데이터베이스(140)를 구성할 경우, 비디오 검색 시에 전체 로우를 검색할 필요 없이 특정된 일자의 로우만을 검색하면 되므로, 검색 효율을 높일 수 있다.
이러한 도 1의 비디오 통합 분석 및 관리 시스템(100)을 통해, 다양한 입력 비디오를 제공하는 입력 비디오 제공 장치(110)로부터 수신된 여러 비디오 데이터들을 효율적인 검색을 위한 비디오 데이터베이스(140)로 구성할 수 있고, 라우팅 서버(120)를 통해 입력 비디오의 종류나 특성에 따라 비디오 분석 서버 클러스터(130) 중 적합한 비디오 분석 서버에 할당하여 비디오 분석 및 인식을 행함으로써 인식 효율을 높일 수 있고, 분석 및 인식된 비디오 데이터를 비디오 컨버터(150)를 통해 사용자의 요구 조건에 맞는 포맷의 비디오로 비디오 출력/제어 장치(160)에 제공할 수 있으며, 객체 검색을 위해 비디오 데이터로부터 메타데이터를 추출하고 그 인버스 피쳐를 함께 메타데이터 데이터베이스(170)에 저장하여 사용자 단말(162)로부터의 검색 쿼리에 따라 특정 객체가 포함된 비디오의 채널 및 시간을 효율적으로 특정하고 이를 비디오 데이터베이스(140)에서 신속하게 검색할 수 있게 된다.
도 2는 본 개시의 다른 실시예에 따른 비디오 데이터의 통합 분석 및 관리 시스템의 구성도이다.
도 2의 각 구성 요소들은 도 1의 각 구성요소들과 동일 또는 유사한 기능을 수행하며, 이들 구성요소의 도면 부호는 도 1의 해당 구성요소와 동일하게 할당하였다. 또한, 이하에서는 설명의 간소화를 위하여 도 1의 구성요소들과 동일 또는 유사한 기능을 수행하는 구성요소들의 구체적인 설명을 생략한다.
도 2의 비디오 통합 분석 및 관리 시스템(200)은 도 1의 비디오 통합 분석 및 관리 시스템(200)과 비교하여 비디오 컨버터(150)가 제외된 점에 가장 큰 차이가 있다. 즉, 도 2에서는 비디오 컨버터(150)가 비디오 통합 분석 및 관리 시스템(200) 외부의 사용자측, 즉 사용자의 비디오 출력/제어 장치(160)에 구성된다.
여기서, 비디오 컨버터(150)는 비디오 통합 분석 및 관리 시스템(200)의 비디오 분석 서버 클러스터(130)에서 분석 및 인식된 비디오 데이터를 I/O 서버(180)를 통해 수신할 수 있다. 비디오 컨버터(150)는 상기 수신된 분석 및 인식된 비디오 데이터는 비디오 출력/제어 장치(160)의 사용자에 의해 미리 설정된 포맷으로 변환하여 비디오 출력/제어 장치(160)에 제공할 수 있으며, 비디오 출력/제어 장치(160)는 이를 디스플레이할 수 있다. 일 실시예에 따르면, 상기 사용자에 의해 미리 설정된 포맷은 디스플레이되는 화면 구성 내지는 그래픽 유저 인터페이스일 수 있다. 이러한 그래픽 유저 인터페이스 내에는, 일 예시로서, 복수 채널의 실시간 영상을 보여주는 부분, 각 채널이 커버하는 공간들의 상태를 보여주는 부분 및 각 채널의 분석 결과로서 채널에 촬영된 객체들의 이동 경로를 보여주는 부분을 포함할 수 있다. 이러한 그래픽 유저 인터페이스에 대해서는 아래의 도 6을 참조하여 구체적으로 후술한다.
도 3은 본 개시의 또 다른 실시예에 따른 비디오 데이터의 통합 분석 및 관리 시스템의 구성도이다.
도 3의 각 구성 요소들은 도 1의 각 구성요소들과 동일 또는 유사한 기능을 수행하며, 이들 구성요소의 도면 부호는 도 1의 해당 구성요소와 동일하게 할당하였다. 또한, 이하에서는 설명의 간소화를 위하여 도 1의 구성요소들과 동일 또는 유사한 기능을 수행하는 구성요소들의 구체적인 설명을 생략한다.
도 3의 비디오 데이터 통합 분석 및 관리 시스템(300)은 도 1의 비디오 데이터 통합 분석 및 관리 시스템(100)에서 딥러닝 서버(310) 및 딥러닝 결과 학습데이터 결과값 데이터베이스(320)을 추가로 포함한다.
딥러닝 서버(310)는 비디오 데이터베이스(140)에 저장된 원본 비디오 데이터를 분석하여 비디오 분석 모델 내지는 영상 인식 알고리즘을 생성할 수 있으며, 생성된 비디오 분석 모델 내지는 영상 인식 알고리즘은 딥러닝 결과로서 학습데이터 결과값 데이터베이스(320)에 저장될 수 있다. 또한, 딥러닝 서버(310)가 생성한 비디오 분석 모델 내지는 영상 인식 알고리즘은 비디오 분석 서버 클러스터(130)의 각 비디오 분석 서버에 의해 이용될 수 있다. 비디오 분석 서버 클러스터(130)의 각 비디오 분석 서버는 라우팅 서버(120)로부터 자신에게 할당된 특정 채널 및/또는 특정 객체에 적합한 비디오 분석 모델 내지는 영상 인식 알고리즘을 학습데이터 결과값 데이터베이스(320)에서 검색 후 이를 가져와서 비디오 분석 및 객체 인식에 적용할 수 있다.
원본 비디오 데이터의 딥러닝 및 결과값 비디오 분석 모델의 생성에 관한 일 실시예에서, 딥러닝 서버(310)는 비디오 데이터베이스(140)에 저장된 원본 비디오 데이터들을 소정의 카테고리 별로 나누어 분석할 수 있다. 예컨대, 딥러닝 서버(310)는 원본 비디오 데이터에 촬영된 객체의 종류에 따라 각 객체의 특성, 주변 상황 등을 고려하여 객체를 분석하고 이에 관한 비디오 분석 모델 내지는 영상 인식 알고리즘을 생성할 수 있다. 또 다른 예에서, 딥러닝 서버(310)는 원본 비디오 데이터를 촬영한 채널의 종류 또는 특성을 고려하여 해당 채널에 따라 객체를 분석하고 이에 관한 비디오 분석 모델 내지는 영상 인식 알고리즘을 생성할 수 있다. 이 경우, 딥러닝 서버(310)는 해당 채널에 관한 메타데이터를 이용할 수 있는데, 이러한 채널 메타데이터로는 카메라 ID, 카메라 IP, 인코딩 타입(예컨대, H.264, H.265 등), 카메라 타입(예컨대, CCTV, 드론 등), 화질(예컨대, HD, 4K 등), 영상 디바이스 종류(예컨대, 고정, 유동 등), 컨텐츠 카테고리(예컨대, 주차장, 시내 등), 카메라 위치, 카메라 높이, Tilt 각도, Pan 각도, 초당 디코딩 프레임수, 용도 등을 포함할 수 있으나, 이에 제한되지 않는다. 이러한 채널 메타데이터들의 집합인 채널 메타 데이터베이스는 별도의 데이터베이스 형태로 저장되어, 딥러닝 서버(310)의 비디오 분석 모델 내지는 영상 인식 알고리즘 생성에 이용될 수 있다.
딥러닝 서버(310)가 생성한 비디오 분석 모델 내지는 영상 인식 알고리즘은 카테고리 별로 학습데이터 결과값 데이터베이스(320)에 저장될 수 있다. 예컨대, 객체의 종류에 따라 사람, 차량, 애완동물 등에 관한 영상 인식 알고리즘들이 저장될 수 있고, 채널의 위치 특성에 따라 거리, 공원, 주차장 등에 관한 영상 인식 알고리즘들이 저장될 수 있으며, 채널의 종류에 따라 CCTV, 드론 등에 관한 영상 인식 알고리즘들이 저장될 수 있다.
특정 데이터를 위한 내부에서 자동으로 학습한 딥러닝 모델로 데이터베이스(320)에 저장되는 비디오 분석 모델 내지는 영상 인식 알고리즘은 딥러닝 서버(310)가 생성한 것 이외에 외부에서 생성한 비디오 분석 모델 내지는 영상 인식 알고리즘이 플러그인 형태로 추가된 것일 수 있다. 외부 생성 비디오 분석 모델 내지는 영상 인식 알고리즘은 비디오 통합 분석 및 관리 시스템(300) 외부의 딥러닝 서버에서 생성된 것으로서, 입력 비디오 제공 장치(110)의 비디오 데이터를 이용하여 생성된 것이거나 그리고/또는 이와 무관한 별도의 비디오 데이터를 학습하여 생성한 비디오 분석 모델 내지는 영상 인식 알고리즘일 수 있다. 이러한 외부 생성 비디오 분석 모델 내지는 영상 인식 알고리즘을 추가함으로써 비디오 분석 서버 클러스터(130)의 각 비디오 분석 서버의 영상 분석 및 인식률이 한층 더 향상될 수 있다.
한편, 딥러닝 서버(310)가 생성한 비디오 분석 모델 내지는 영상 인식 알고리즘은 비디오 통합 분석 및 관리 시스템(300) 외부의 타 시스템에 제공될 수 있다. 이러한 비디오 분석 모델 내지는 영상 인식 알고리즘은 딥러닝 서버(310)가 입력 비디오 제공 장치(110)로부터의 다량의 비디오 데이터를 분석하여 생성한 것으로서 타 시스템에서 유용하게 사용될 수 있으며 또한 독립된 경제적 가치를 가진 어플리케이션으로 적용될 수 있다.
도 3에 도시된 바와 같이, 비디오 통합 분석 및 관리 시스템(300)의 외부에는 다중 사용자를 위한 딥러닝 플랫폼 웹 인터페이스(330)가 추가로 설치될 수 있으며, 딥러닝 플랫폼 웹 인터페이스(330)는 딥러닝에 참여하는 여러 일반 사용자 내지는 딥러닝 전문가가 비디오 통합 분석 및 관리 시스템(300)의 딥러닝 서버(310)를 통한 학습에 참여하는 것을 가능하게 한다. 이러한 딥러닝 플랫폼 웹 인터페이스(330)는 웹서버 형태로 구성될 수 있으나 이에 제한되는 것은 아니다.
딥러닝 플랫폼 웹 인터페이스(330)에 접속하는 사용자는 자신의 별도 단말을 통해 이에 접속할 수 있으며, 이러한 사용자는 비디오 출력/제어 장치(160)의 사용자 및/또는 사용자 단말(162)의 사용자와 같은 일반 사용자를 포함할 수 있다. 또한, 딥러닝 플랫폼 웹 인터페이스(330)에 접속하는 사용자는 딥러닝에 전문적인 지식을 가진 딥러닝 전문가일 수 있다. 딥러닝 서버(310)는 이러한 딥러닝 전문가를 위하여 하드 트레이닝(Hard Training)을 제공할 수 있으며, 또한, 일반 사용자를 위하여 이지 트레이닝(Easy Training)을 제공할 수 있다. 이지 트레이닝의 경우에, 딥러닝 서버(310)는 딥러닝 플랫폼 웹 인터페이스(330)를 통해 사용자가 손쉽게 선택할 수 있는 몇 가지 옵션을 제공할 수 있으며, 사용자는 간단히 본인이 원하는 옵션을 선택함으로써 딥러닝에 참여할 수 있다. 딥러닝 서버(310)가 이지 트레이닝을 위해 딥러닝 플랫폼 웹 인터페이스(330)에 제공하는 선택 옵션으로는, 예컨대 타겟 객체의 선정, 영상 타입의 선정, 딥러닝 모델의 선정, 학습 데이터셋의 선정 등이 있을 수 있으나 이에 제한되는 것은 아니다. 딥러닝 서버(310)는 사용자가 딥러닝 플랫폼 웹 인터페이스(330)를 통해 선택한 옵션에 따라 비디오 데이터베이스(140)의 비디오 데이터에 대한 학습을 수행하도록 구성된다.
딥러닝 서버(310)는 학습 중인 객체들에 대한 레이블링(labelling)을 제공할 수 있다. 레이블링을 위해 딥러닝 서버(310)는 딥러닝 플랫폼 웹 인터페이스(330)를 통해 레이블링 작업 수행자의 레이블링 작업을 허용할 수 있다. 다시 말해, 레이블링 작업의 수행자는 딥러닝 플랫폼 웹 인터페이스(330)를 통해 딥러닝 서버(310)에 접속하여 분석 및 학습 중인 비디오 데이터의 객체에 대한 레이블링 작업을 수행할 수 있으며, 객체들에 대한 레이블링은 비디오 분석 모델 내지는 영상 인식 알고리즘에 반영되어 학습데이터 결과값 데이터베이스(320)에 함께 저장될 수 있다. 또한, 딥러닝 서버(310)는 다수의 레이블링 작업 수행자가 동시에 접속하여 동시 작업을 할 수 있는 환경을 제공할 수 있다.
또한, 딥러닝 서버(310)는 생성된 비디오 분석 모델 내지는 영상 인식 알고리즘 및/또는 객체에 대한 레이블링을 평가할 수 있다. 이러한 평가에는 비디오 분석 서버 클러스터(130)의 각 비디오 분석 서버로부터의 피드백을 이용할 수 있다. 이러한 평가 결과 역시 학습데이터 결과값 데이터베이스(320)에 함께 저장되어 추후 해당 비디오 분석 모델 내지는 영상 인식 알고리즘의 평가 및 유통에 활용될 수 있다.
도 3에서 딥러닝 서버(310)는 단일 서버로 구성되었으나, 실시예에 따라서는 이를 비디오 분석 서버 클러스터(130)와 같은 복수의 딥러닝 서버로 구성된 딥러닝 서버 클러스터로 구성될 수 있다. 이러한 경우, 비디오 데이터베이스(140)의 여러 원본 비디오 데이터들을 해당 채널의 특성에 맞춰 적합한 딥러닝 서버로 할당해 주는 라우팅 장치가 필요할 수 있으며, 이는 라우팅 서버(120) 내지는 도시되지 않은 별도의 라우팅 장치를 통해 수행될 수 있다. 또한, 딥러닝 플랫폼 웹 인터페이스(330)를 통해 접속하는 다중 사용자의 작업을 딥러닝 서버 클러스터 내 복수의 딥러닝 서버 중 특정 딥러닝 서버에 할당해 주는 라우팅 장치가 필요할 수 있으며, 이는 I/O 서버(180) 내지는 도시되지 않은 별도의 라우팅 장치를 통해 수행될 수 있다.
도 3의 비디오 통합 분석 및 관리 시스템(300)은 딥러닝 서버(310)와 그 학습 결과인 비디오 분석 모델 내지는 영상 인식 알고리즘을 저장한 학습데이터 결과값 데이터베이스(320)를 추가함으로써 비디오 분석 서버 클러스터(130)의 각각의 비디오 분석 서버의 비디오 분석 및 객체 인식에 관한 효율과 성능을 높일 수 있으며, 또한 외부의 다중 사용자를 위한 딥러닝 플랫폼 웹 인터페이스(330)를 통해 다중 사용자가 딥러닝 서버(310)의 학습 작업에 참여하거나 객체 레이블링 작업 수행이 가능하게 되는 한편, 딥러닝 서버(310)를 다수의 딥러닝 서버 클러스터 형태로 구성함으로써 병렬적인 분석 및 학습을 통한 각 채널 및/또는 비디오에 적합한 딥러닝 서버를 통해 보다 정확한 비디오 분석 모델 내지는 영상 인식 알고리즘의 생성이 가능해 짐으로써, 결과적으로 비디오 분석 서버 클러스터(130)에 속한 비디오 분석 서버들의 비디오 분석 및 객체 인식의 정확도 및 효율을 더욱 높일 수 있게 된다.
도 4a는 본 개시의 일 실시예에 따라 입력 비디오 데이터로부터 추출한 메타데이터의 예를 도식적으로 도시한 도면이고, 도 4b는 본 개시의 일 실시예에 따라 메타데이터에 기초하여 생성된 인버스 피쳐(inverse feature)의 예를 도식적으로 도시한 도면이다.
앞서 도 1과 관련하여 설명한 바와 같이, 비디오 분석 서버 클러스터(130)의 각각의 비디오 분석 서버는 라우팅 서버로부터 할당 받은 특정 채널의 비디오 데이터를 분석하여 해당 비디오 데이터의 메타데이터를 추출한 후 메타데이터 데이터베이스(170)에 저장할 수 있으며, 도 4a는 이러한 메타데이터의 일 실시예이다. 또한, 비디오 분석 서버 클러스터(130)의 각 비디오 분석 서버는 추출된 메타데이터로부터 인버스 피쳐(inverse feature)를 생성하여 메타데이터 데이터베이스(170)에 저장할 수 있으며, 도 4b는 이러한 인버스 피쳐의 일 실시예이다.
도 4a를 참조하면, 메타데이터는 복수 개의 채널들(CH1, CH2, …각각에 대하여 해당 채널에서 제공되는 비디오 데이터로부터 인식되는 객체 종류에 따라 사람(P), 차량(C) 등으로 분류될 수 있다. 즉, CH1, CH2 각각에서 촬영된 비디오 데이터에 포함된 객체에는 사람, 차량 등의 여러 객체들이 포함될 수 있으며, 도 4a의 메타데이터에서는 각 채널에서 인식되는 객체들을 종류에 따라 하나의 로우(row)에 형성하였다. 이에 따라, CH1의 객체 사람(P)에 해당하는 로우에는 CH1의 비디오 데이터에서 인식된 사람들의 메타데이터가 각 컬럼(column)으로 나열되며, CH2의 객체 차량(C)에 해당하는 로우에는 CH1의 비디오 데이터에서 인식된 차량들의 메타데이터가 각 컬럼(column)으로 나열된다. 마찬가지로, CH2의 비디오 데이터에서 인식된 사람들의 메타데이터는 해당 로우의 각 컬럼으로, 그리고 CH2의 비디오 데이터에서 인식된 차량들의 메타데이터는 해당 로우의 각 컬럼으로 나열된다.
메타데이터의 각 로우의 컬럼은 좌에서 우로 시간 순서에 따라 인식되는 객체들이 나열된다. 또한, 비디오 분석 서버 클러스터(130)의 각 비디오 분석 서버는 인식되는 각각의 객체에 대해 고유의 태그(tag)를 부여하는 태깅(tagging) 작업을 수행할 수 있으며, 동일하게 인식되는 객체에 대해서는 동일한 태그를 태깅하게 된다. 예컨대, CH1의 객체 사람(P)의 로우에서, CH1의 비디오 데이터에서 처음 인식되는 사람에 대해 P0138의 태그가 태깅되며, 그 다음 인식되는 사람에 대해 P2413의 태그가 태깅된다. 그 다음 인식되는 사람은 앞서 인식한 P0138의 사람과 동일한 사람으로 인식되어 이와 동일한 P0138의 태그가 그 사람에게 태깅된다.
도 4a의 메타데이터의 각 로우를 살펴 보면, 우선 인식된 객체의 이미지가 저장되고 그 이미지에 바로 이어 해당 이미지에 대한 정보(예컨대, 도 4a의 CH1의 객체 사람(P) 로우에서 “P0138 이미지” 우측의 빗금 친 부분)가 저장된다. 해당 이미지, 즉 해당 객체에 대한 정보로는, 그 객체의 태그(예컨대, P0138)와, 비디오가 촬영된 시간을 나타내는 타임스탬프, 해당 채널 정보, 그리고 원본 비디오 데이터의 위치(예컨대, 비디오 데이터베이스(140) 내의 저장 위치 등)를 포함할 수 있으나 이에 제한되는 것은 아니다.
도 4b는 도 4a의 메타데이터를 기초로 생성된 인버스 피쳐(inverse feature)로서, 인버스 피쳐에는 각각의 객체를 기준으로 해당 객체가 촬영된 채널 등의 정보가 시간 순으로 정렬된다. 도 4b를 참조하면, 인버스 피쳐는 객체인 사람(P), 차량(C) 등으로 대분류를 하고, 또한 객체 사람(P) 분류 중에서 각 개별 사람 객체인 P0138, P2413, …그리고 각 개별 차량 객체인 C1217, C3448, …로 분류하였다. 각각의 객체 로우, 예컨대 P0138 객체의 인버스 피쳐 로우를 살펴 보면, P0138 객체가 촬영된 채널(CH1, CH2)과 그 뒤에 점선 부분으로 표시된 상세 정보가 뒤따른다. 여기서, 상세 정보에는 해당 채널의 위치 등에 관한 정보, 해당 객체가 촬영된 시간을 나타내는 타임스탬프, 그리고 해당 객체가 촬영된 원본 비디오 데이터의 위치 등을 포함하나 이에 제한되는 것은 아니다.
이와 같이 비디오 분석 서버 클러스터(130)의 각 비디오 분석 서버에서 생성되어 메타데이터 데이터베이스(170)에 저장되는 메타데이터 및 인버스 피쳐는 외부 사용자의 검색 요구에 따라 특정 객체의 비디오를 검색하는 데에 사용될 수 있다. 앞서 도 1과 관련하여 설명한 바와 같이, 비디오 통합 분석 및 관리 시스템(100)의 외부에서 접속되는 사용자 단말(162)의 사용자는 특정 검색 쿼리를 이용하여 사용자 단말(162)을 통해 특정 비디오 데이터의 검색을 비디오 통합 분석 및 관리 시스템(100)에 요청할 수 있으며, 이러한 검색 쿼리에는 특정 객체의 태그를 포함할 수 있다. 예컨대, 사용자가 비디오 출력/제어 장치(160)를 통해 인지한 객체 P0138의 태그에 해당하는 사람의 원본 비디오들을 보고자 하는 경우, 위 사용자는 사용자 단말(162)을 통해 태그 P0138을 포함하는 검색 쿼리를 비디오 통합 분석 및 관리 시스템(100)으로 전송할 수 있다. 이 쿼리를 수신한 비디오 통합 분석 및 관리 시스템(100)의 비디오 검색 서버(190)는 우선 메타데이터 데이터베이스(170)에 저장된 도 4b의 인버스 피쳐를 검색할 수 있다. 검색 결과, 비디오 검색 서버(190)는 P0138의 객체가 촬영된 채널들과 각 채널에서 촬영된 시간 및/또는 원본 비디오가 저장된 위치 등에 관한 정보를 구할 수 있다. 비디오 검색 서버(190)는 이러한 P0138의 객체의 원본 비디오 데이터에 관한 정보를 기초로 비디오 데이터베이스(140)를 검색하여 해당 원본 비디오 데이터를 불러와 비디오 출력/제어 장치(160)를 통해 상기 사용자에게 제공하거나 또는 사용자 단말(162)과 연결된 별도의 디스플레이 장치에 제공할 수 있다.
여기서, 사용자의 검색 쿼리는 사용자의 요구에 따라 다양한 형태로 제공될 수 있으며, 비디오 통합 분석 및 관리 시스템(100)의 비디오 검색 서버(190)는 다양한 사용자의 쿼리에 맞춰 사용자가 요구하는 최적의 검색 쿼리를 제공할 수 있도록 메타데이터 데이터베이스(170)의 메타데이터 및/또는 인버스 피쳐와 비디오 데이터베이스(140)에 저장된 데이터들을 여러 형태로 이용할 수 있다.
도 5는 입력 비디오 제공 장치의 채널들에 대한 채널 메타데이터의 예를 도시한 도면이다.
도 1과 관련하여 설명한 입력 비디오 제공 장치(110)는 다양한 형태의 입력 비디오를 생성 및/또는 제공 장치, 즉 채널들을 포함할 수 있다. 이러한 채널들의 예로는 채널 형태에 따라 CCTV, 드론 등이 있을 수 있으며, 촬영 방법에 따라 일반 카메라, 열화상 카메라, 뎁스(depth) 카메라 등이 있을 수 있다. 또한, 채널이 위치하는 장소에 따라 채널 특성이 분류될 수 있으며, 채널이 설치된 높이, 각도 등에 따라서도 분류될 수 있다. 이렇듯 다양한 형태로 존재하는 채널들에 대해 그에 적합한 영상인식 알고리즘 데이터를 적용하여 입력 비디오를 처리함으로써 보다 높은 인식률 및 빠른 인식 성능을 얻을 수 있게 된다.
도 5에서는 두 가지 사례, 즉 사례 1 및 사례 2의 채널들에 대해 13가지의 분류로 채널 메타데이터를 구성한 예를 보여준다. 첫 번째 행에서는 해당 채널의 ID를 그리고 두 번째 행에서는 카메라의 IP 주소를 나타낸다. 또한, 채널의 인코딩 타입에 따라 채널을 분류할 수 있으며, 카메라 타입, 화질, 영상 디바이스 종류, 컨텐츠 카테고리에 따라 채널의 분류가 가능하다. 나아가, 카메라의 위치, 높이, 틸트 각도, 팬 각도, 초당 디코딩 프레임 수 및 채널의 용도에 따라 채널을 세분할 수 있다. 이렇게 각각의 채널을 사례 별로 분류한 채널 메타데이터를 구성한 것이 도 5의 실시예이다. 이러한 채널 메타데이터들의 집합인 채널 메타 데이터베이스는 메타데이터 데이터베이스(170), 도 3에 도시된 학습데이터 결과값 데이터베이스(320) 또는 별도의 데이터베이스 형태로 저장될 수 있다.
일 실시예에서, 도 1에서 설명한 비디오 통합 분석 및 관리 시스템(100)의 각각의 비디오 분석 서버는 라우팅 서버(120)로부터 특정 채널의 분석을 할당 받은 후 해당 채널에 관한 채널 메타데이터를 참조하여 해당 채널 메타데이터에 적합한 비디오 분석 모델 내지는 영상 인식 알고리즘을 불러와 이에 기초하여 비디오 데이터의 분석 및 객체 인식 작업을 수행할 수 있다. 이러한 비디오 데이터 모델 내지는 영상 인식 알고리즘은 도 3과 관련하여 설명한 딥러닝 서버(310)에서 학습을 통해 생성되어 학습 데이터 결과값 데이터베이스(320)에 저장된 것일 수 있으며, 또는 외부에서 제공 받아 학습데이터 결과값 데이터베이스에 저장된 영상 인식 알고리즘일 수 있다.
도 6은 비디오 분석 결과로서 비디오 출력/제어 장치에서 디스플레이되는 화면의 구체적인 예를 도시한 도면이다.
앞서 도 1의 실시예와 관련하여 설명한 바와 같이, 비디오 분석 서버 클러스터(130)의 각 비디오 분석 서버에서 인식 및 분석 처리된 각 채널의 입력 비디오는 비디오 컨버터(150)로 제공되며, 비디오 컨버터(150)에서는 인식 및 분석 처리된 입력 비디오들을 비디오 출력/제어 장치(160)에 전송하여 디스플레이하기에 적합한 소정의 포맷으로 변환하는 작업을 수행한다. 또한, 도 2의 실시예와 관련하여 설명한 바와 같이, 비디오 컨버터(150)가 비디오 통합 분석 및 관리 시스템(200) 외부의 사용자측, 즉 사용자의 비디오 출력/제어 장치(160) 측에 구성된 경우, 비디오 컨버터(150)는 비디오 통합 분석 및 관리 시스템(200)의 비디오 분석 서버 클러스터(130)에서 분석 및 인식된 비디오 데이터를 I/O 서버(180)를 통해 수신하여 상기 수신된 분석 및 인식된 비디오 데이터를 비디오 출력/제어 장치(160)의 사용자에 의해 미리 설정된 포맷으로 변환하는 작업을 수행한다. 도 6은 비디오 컨버터(150)에 의해 미리 설정된 포맷으로 변환되어 비디오 출력/제어 장치(160)에 디스플레이되는 화면, 즉 그래픽 유저 인터페이스(600)를 예시한 것이다.
도 6을 참조하면, 비디오 출력/제어 장치(160)에 디스플레이되는 그래픽 유저 인터페이스(600)는 복수 채널의 실시간 비디오를 보여주는 채널 비디오 표시부(610), 각 채널이 커버하는 공간들의 상태를 보여주는 공간 표시부(620), 각 채널의 분석 결과를 보여주는 채널 분석부(630) 및 각 채널에서 인식된 객체들의 이동 경로를 보여주는 객체 이동 경로 분석부(640)를 포함한다. 이러한 각 부분은 예시로서 열거 및 구성된 것이며, 비디오 출력/제어 장치(160)의 사용자의 요구 및 필요에 따라 일부를 제거하거나 또는 다른 필요한 화면 부분을 추가할 수 있다.
채널 비디오 표시부(610)는 복수 개의 각 채널들이 현재 촬영하고 있는 비디오에 대해 비디오 분석 서버가 분석 및 객체 인식을 하고 있는 상태를 보여주며, 도 6의 실시예에서는 인식 대상 객체는 사람으로 한정되어 있다. 채널 비디오 표시부(610)에는 4개의 채널, 즉 CH1, CH2, CH3 및 CH4의 영상을 보여주고 있다. CH1은 출입구 쪽의 영상을 보여주고 있고, CH2는 복도의 영상을 보여주고 있으며, CH3 및 CH4는 각각 회의실의 영상을 보여주고 있다. 또한, CH1 및 CH2에는 인식 대상 객체인 사람이 인식되고 있지 않는 상태이며, CH3 및 CH4에는 각각 3명의 사람이 인식되고 있는 상태이다.
공간 표시부(620)는 채널들이 설치된 공간의 평면도 위에 각 채널이 설치된 위치와 각 채널이 인식한 객체들의 현재 위치를 표시한다. 즉, CH1은 공간 평면도 상의 출입구 쪽에 설치되어 있고, CH2는 복도 쪽에 설치되어 있고, CH3는 미팅룸(meeting room) 1에 설치되어 있으며, CH4는 미팅룸 2에 설치되어 있다. 또한, 도시된 바와 같이, CH3가 설치된 미팅룸 1에는 P03, P04 및 P06으로 태깅된 3명의 객체, 즉 사람이 위치하고 있으며, CH4가 설치된 미팅룸 2에는 P01, P02 및 P05로 태깅된 3명의 사람이 위치하고 있다.
객체 이동 경로 분석부(640)는 각각의 객체들이 이동한 경로를 나타낸다. 도 6의 그래픽 유저 인터페이스(600)는 객체 P01 내지 객체 P06가 각각 일정한 이동 경로를 거쳐 미팅룸 1 및 미팅룸 2에 위치한 현재 상태를 표시한다. 예컨대, 객체 이동 경로 분석부(640)의 객체 P04는 CH1, CH2, CH3, CH2 및 CH3의 순서로 각 채널에서 인식되었는데, 이는 다시 말해 P04의 사람이 출입구(CH1)로 들어와 복도(CH2)를 거쳐 미팅룸 1(CH3)에 들어 갔다가 다시 복도(CH2)로 나온 뒤 현재 미팅룸 1(CH3)에 다시 입장한 상태를 나타낸다. 또한, 객체 이동 경로 분석부(640)의 객체 P01은 CH1 및 CH4의 순서로 각 채널에서 인식되었는데, 이는 P01의 사람이 출입구(CH1)로 들어와 복도(CH2)를 거쳐 미팅룸 2(CH4)에 입장하였으나 복도의 CH2에서는 인식되지 않았음을 나타낸다.
채널 분석부(630)는 각 채널에서 인식된 결과를 표시한다. 객체 이동 경로 분석부(640)에서 각 객체들이 각 채널들에서 인식된 횟수를 보면, CH1, CH3 및 CH4에서는 각각 총4번의 객체 인식이 있었으며, CH2에서는 총8번의 객체 인식이 있었다. 채널 분석부(630)에서는 그 횟수를 도식적으로 표시함으로써, 각 채널에서 객체 인식 횟수를 사용자가 알아 보기 편하도록 보여주고 있다.
이러한 방식으로, 비디오 컨버터(150)가 비디오 분석 서버 클러스터(130)로부터 각 채널의 비디오 신호와 함께 분석 및 객체 인식 결과 데이터를 수신하여 비디오 출력/제어 장치(160)의 사용자가 미리 설정한 포맷에 맞춰 그래픽 유저 인터페이스(600)를 생성하여 이를 비디오 출력/제어 장치(160)에 제공함으로써, 사용자에게 보다 직관적이고 포괄적인 공간 내의 객체 현황 및 분석 결과를 제공할 수 있게 된다.
도 7은 본 개시의 적어도 일부 실시예에 따라 비디오 데이터의 통합적인 분석 및 관리를 하기 위한 예시적인 프로세스(700)를 도시한 도면이다.
도 7에 도시된 프로세스(700)는 블록(710, 720, 730, 740, 750, 760, 770 및/또는 780)에 의해 예시된 바와 같은 하나 이상의 동작, 기능 또는 작용을 포함할 수 있다. 한편, 도 7에 예시된 개략적인 동작들은 예시로서만 제공되고, 개시된 실시예의 본질에서 벗어나지 않으면서, 동작들 중 일부가 선택적일 수 있거나, 더 적은 동작으로 조합될 수 있거나, 추가적인 동작으로 확장될 수 있다. 또한, 도 7의 프로세스(700)의 각각의 블록들은, 앞서 도 1 내지 도 3과 이와 관련하여 설명한 내용들과 연관되어 동일 또는 유사한 기능 또는 작용을 할 수 있으나, 이에 제한되는 것은 아니다. 나아가, 비제한적인 실시예에서, 도 7의 프로세스(700)는 도 1의 비디오 통합 분석 및 관리 시스템(100), 도 2의 비디오 통합 분석 및 관리 시스템(200), 또는 도 3의 비디오 통합 분석 및 관리 시스템(300)에서 수행될 수 있다. 따라서, 이하에서 도 7의 프로세스(700)의 각 블록을 설명함에 있어서, 도 1 내지 도 3의 비디오 통합 관리 시스템에 사용된 각 구성요소들과 연관 지어 설명할 수 있다.
도 7을 참조하면, 프로세스(700)는 입력 비디오 제공 장치의 일 채널로부터 입력 비디오를 수신하는 블록(710)에서 시작할 수 있다.
블록(710)에서, 비디오 통합 분석 및 관리 시스템(100, 200 또는 300)은 입력 비디오 제공 장치(110)에 포함된 복수의 입력 비디오 생성 장치들로부터 생성된 입력 비디오를 수신하게 된다. 입력 비디오 제공 장치(110)는 복수 개의 입력 비디오를 생성하는 장치를 포함할 수 있다. 이러한 입력 비디오 생성 장치로는 일반적인 CCTV와 같은 비디오 촬영 장치, 드론에 설치된 카메라, 또는 합성 비디오 발생기와 같이 비디오 촬영 장치를 통해 획득한 실제 영상이 아닌 합성된 비디오를 생성하는 장치일 수 있다. 이러한 입력 비디오를 생성하는 여러 장치들은 각각 하나의 비디오 채널을 구성하며, 각 채널 별로 생성된 입력 비디오들은 원본 비디오 데이터로서 비디오 데이터의 통합 분석 및 관리 시스템(100, 200 또는 300)에 제공된다. 프로세스(700)는 블록(710)으로부터 수신된 입력 비디오를 비디오 분석 서버 클러스터의 특정 비디오 분석 서버에 할당하는 블록(720) 및/또는 수신된 입력 비디오를 비디오 데이터베이스에 추가하는 블록(730)으로 이어질 수 있다.
블록(720)에서, 비디오 데이터의 통합 분석 및 관리 시스템(100, 200 또는 300)의 라우팅 서버(120)가 입력 비디오 제공 장치(110)로부터 수신된 입력 비디오를 비디오 분석 서버 클러스터(130)의 특정 비디오 분석 서버에 할당할 수 있다. 이 때에, 라우팅 서버(120)는 입력 비디오 제공 장치(110)의 각 채널의 특성에 따라 특정 채널의 영상 처리를 비디오 분석 서버 클러스터(130) 내의 특정 서버로 라우팅할 수 있다. 비디오 분석 서버 클러스터(130)의 각각의 비디오 분석 서버는 특정 비디오의 분석에 적합하도록 설계될 수 있으며, 라우팅 서버(120)는 미리 각 비디오 분석 서버의 특성을 파악한 상태에서 입력 비디오의 채널 특성에 따라 해당 비디오를 적합한 비디오 분석 서버로 할당하게 되는 것이다. 한편, 블록(730)에서, 비디오 데이터의 통합 분석 및 관리 시스템(100, 200 또는 300)의 라우팅 서버(120)가 입력 비디오 제공 장치(110)의 각 채널로부터 입력 비디오를 수신하여 비디오 데이터베이스(140)에 이를 원본 비디오 데이터로 저장할 수 있다. 비디오 데이터베이스(140)에 저장된 원본 비디오 데이터는 추후 사용자의 검색 요구에 따라 사용자 단말(162)로 제공될 수 있다. 프로세스(700)는 블록(720)으로부터 입력 비디오의 분석 작업 및 비디오에 포함된 객체 인식 작업을 수행하는 블록(740)으로 이어질 수 있다.
블록(740)에서, 비디오 데이터의 통합 분석 및 관리 시스템(100, 200 또는 300)의 비디오 서버 클러스터(130)의 각 비디오 분석 서버는 라우팅 서버(120)로부터 할당 받은 채널의 입력 비디오를 분석하여 객체 인식 작업을 수행할 수 있다. 이 때에, 각각의 비디오 분석 서버는 처리할 입력 비디오의 채널에 따라 해당 채널의 특성에 맞는 영상 인식 알고리즘을 적용하여 입력 비디오를 처리할 수 있다. 또한, 각각의 비디오 분석 서버는 각각의 채널의 속성에 관한 채널 메타 데이터베이스로부터 해당 채널의 메타데이터를 불러올 수 있으며, 이 채널 메타데이터에 적합한 영상인식 알고리즘을 적용하여 입력 비디오를 처리할 수 있다. 더불어, 각각의 비디오 분석 서버는 딥러닝 서버(310)의 학습에 의해 생성되어 학습데이터 결과값 데이터베이스(320)에 저장된 비디오 분석 알고리즘 내지는 영상 인식 알고리즘 또는 외부 시스템에 의해 생성되어 학습데이터 결과값 데이터베이스(320)에 저장된 비디오 분석 알고리즘 내지는 영상 인식 알고리즘을 사용하여 입력 비디오의 분석 및 객체 인식 작업을 수행할 수 있다. 프로세스(700)는 블록(740)으로부터 비디오 분석 결과 데이터에 기초하여 소정 포맷의 화면 출력 영상을 생성한느 블록(750) 및/또는 인식된 객체의 메타데이터를 생성하는 블록(770)으로 이어질 수 있다.
블록(750)에서, 비디오 데이터의 통합 분석 및 관리 시스템(100 또는 300)의 비디오 컨버터(150)는 인식 및 분석 처리된 입력 비디오들을 비디오 출력/제어 장치(160)에 전송하여 디스플레이하기에 적합한 소정의 포맷의 그래픽 유저 인터페이스를 생성하는 작업을 수행한다. 이 때에, 생성된 그래픽 유저 인터페이스는 도 6의 그래픽 유저 인터페이스(600)와 같은 형태일 수 있으나 이에 제한되는 것은 아니다. 한편, 도 2의 비디오 데이터의 통합 분석 및 관리 시스템(200)과 같이 비디오 컨버터(150)가 시스템 외부에서 비디오 출력/제어 장치(160) 측에 구성된 경우에, 블록(750) 및 그 후속 블록(760)은 생략될 수 있으며, 이 때에 데이터의 통합 분석 및 관리 시스템(200)은 비디오 분석 서버 클러스터(130)에서 분석 및 객체 인식된 입력 비디오 및 관련 데이터들을, I/O 서버(180)를 거치거나 혹은 I/O 서버(180) 경유 없이 바로 외부의 비디오 컨버터(150)로 전송할 수 있다. 프로세스(700)는 블록(750)에서 생성된 화면 출력 영상을 비디오 출력/제어 장치로 전송하는 블록(760)으로 이어질 수 있다.
블록(760)에서, 비디오 데이터의 통합 분석 및 관리 시스템(100 또는 300)의 I/O 서버(180)는 비디오 컨버터(150)에서 생성한 도 6의 그래픽 유저 인터페이스(600)와 같은 형태의 화면 출력 영상을 비디오 출력/제어 장치(160)로 전송할 수 있다. 앞서 설명한 바와 같이, 비디오 데이터의 통합 분석 및 관리 시스템(100 또는 300)에서 I/O 서버(180)는 생략될 수 있으며, 이 경우 I/O 서버 경유 없이 비디오 컨버터(150)가 바로 생성된 화면 영상을 비디오 출력/제어 장치(160)로 전송할 수 있다. 시스템 외부의 비디오 출력/제어 장치(160)는 전송 받은 화면 영상을 디스플레이하여 사용자에게 제공할 수 있다.
블록(770)에서, 비디오 데이터의 통합 분석 및 관리 시스템(100, 200 또는 300)의 비디오 서버 클러스터(130)의 각 비디오 분석 서버는 분석 및 객체 인식을 통해 각 객체의 메타데이터를 생성할 수 있다. 이러한 메타데이터는 도 4a와 같은 형태, 즉 복수 개의 채널들(CH1, CH2, …각각에 대하여 해당 채널에서 제공되는 비디오 데이터로부터 인식되는 객체 종류에 따라 사람(P), 차량(C) 등의 로우(row)로 분류하고, 각각의 객체 로우에서 인식되는 객체들의 객체 이미지 및 그 객체 이미지에 해당하는 정보로서 객체의 태그, 타임스탬프, 해당 채널 정보, 원본 비디오 데이터의 위치 등을 시간 순서로 나열한 형태로 구성될 수 있다. 프로세스(700)는 블록(770)에서 메타데이터로부터 인버스 피쳐를 생성하는 블록(780)으로 이어질 수 있다.
블록(780)에서, 비디오 데이터의 통합 분석 및 관리 시스템(100, 200 또는 300)의 비디오 서버 클러스터(130)의 각 비디오 분석 서버는 블록(770)에서 생성한 메타데이터로부터 인버스 피쳐를 생성할 수 있다. 이러한 인버스 피쳐는 도 4b와 같은 형태, 즉 각각의 객체를 기준으로 해당 객체가 촬영된 채널 등의 정보가 시간 순으로 정렬된 구성일 수 있다.
블록(770)에서 생성된 메타데이터 및 블록(780)에서 생성된 인버스 피쳐는 비디오 데이터의 통합 분석 및 관리 시스템(100, 200 또는 300)의 메타데이터 데이터베이스(170)에 저장되어 추후 외부 사용자의 검색 요구에 따라 특정 객체가 촬영된 비디오를 검색하는 데에 사용될 수 있다.
한편, 이러한 블록(770)의 메타데이터를 생성하는 작업 및 그 후속해서 블록(780)의 인버스 피쳐를 생성하는 작업은, 비디오 분석 결과 데이터에 기초하여 소정 포맷의 화면 출력 영상을 생성하는 블록(750)과 병렬적으로 수행되거나, 또는, 블록(750) 이전 또는 이후에 수행될 수 있다.
도 8은 본 개시의 적어도 일부 실시예에 따라 비디오 데이터의 검색을 위한 예시적인 프로세스를 도시한 도면이다.
도 8에 도시된 프로세스(800)는 블록(810, 820, 830, 840 및/또는 850)에 의해 예시된 바와 같은 하나 이상의 동작, 기능 또는 작용을 포함할 수 있다. 한편, 도 8에 예시된 개략적인 동작들은 예시로서만 제공되고, 개시된 실시예의 본질에서 벗어나지 않으면서, 동작들 중 일부가 선택적일 수 있거나, 더 적은 동작으로 조합될 수 있거나, 추가적인 동작으로 확장될 수 있다. 또한, 도 8의 프로세스(700)의 각각의 블록들은, 앞서 도 1 내지 도 3 및 이와 관련하여 설명한 내용들과 연관되어 동일 또는 유사한 기능 또는 작용을 할 수 있으나, 이에 제한되는 것은 아니다. 나아가, 비제한적인 실시예에서, 도 8의 프로세스(800)는 도 1의 비디오 통합 분석 및 관리 시스템(100), 도 2의 비디오 통합 분석 및 관리 시스템(200), 또는 도 3의 비디오 통합 분석 및 관리 시스템(300)에서 수행될 수 있다. 따라서, 이하에서 도 8의 프로세스(800)의 각 블록을 설명함에 있어서, 도 1 내지 도 3의 비디오 통합 관리 시스템에 사용된 각 구성요소들과 연관 지어 설명할 수 있다.
도 8을 참조하면, 프로세스(800)는 외부 사용자 단말로부터 검색 쿼리를 수신하는 블록(810)에서 시작할 수 있다.
블록(810)에서, 비디오 데이터의 통합 분석 및 관리 시스템(100, 200 또는 300)은 외부의 사용자 단말(162)로부터 특정 객체에 대한 비디오 데이터를 요청하는 검색 쿼리를 수신할 수 있다. 일 실시예에서, 사용자 단말(162)의 사용자는 비디오 출력/제어 장치(160)에서 보여지는 화면을 통해 검색할 객체를 특정하여 검색 쿼리를 작성할 수 있다. 이러한 검색 쿼리에는 특정 객체의 태그 또는 레이블과, 그 객체가 포함된 비디오를 제공한 채널과 그 장소 및/또는 시간 기간을 포함할 수 있다. 프로세스(800)는 블록(810)에서 수신된 검색 쿼리에 기초하여 메타데이터 데이터베이스를 검색하여 원본 데이터의 위치를 획득하는 블록(820)으로 이어질 수 있다.
블록(820)에서, 비디오 데이터의 통합 분석 및 관리 시스템(100, 200 또는 300)의 비디오 검색 서버(190)는 외부 사용자 단말(162)로부터 수신된 검색 쿼리에 기초하여 메타데이터 데이터베이스(170)에 저장된 메타데이터를 검색하여 해당 검색 쿼리에 맞는 원본 비디오 데이터가 저장된 위치를 얻을 수 있다. 이 경우, 비디오 검색 서버(190)는 검색 쿼리에 포함된 검색하고자 하는 객체의 태그, 레이블 혹은 썸네일로 검색 대상 객체를 특정하고 메타데이터 데이터베이스(170)로부터 해당 객체가 포함된 비디오 데이터의 위치 및/또는 이를 촬영한 채널과 촬영된 시간을 입수할 수 있다. 프로세스(800)는 블록(820)에서 획득된 원본 데이터의 위치에 기초하여 비디오 데이터베이스에서 해당 비디오를 검색하는 블록(830)으로 이어질 수 있다.
블록(830)에서, 비디오 데이터의 통합 분석 및 관리 시스템(100, 200 또는 300)의 비디오 검색 서버(190)는 블록(820)에서 입수한 검색 쿼리가 요구하는 비디오 데이터의 위치 및/또는 이를 촬영한 채널과 촬영된 시간에 기초하여 비디오 데이터베이스(140)를 검색할 수 있다. 비디오 데이터베이스(140)는 NoSQL 형태의 HBase 기반의 데이터베이스로 구성될 수 있다. 이 경우, 비디오 데이터베이스(140)는 특정 채널로부터 입력되는 입력 비디오를 컬럼 수의 제한 없이 하나의 로우로 생성할 수 있는데, 앞서 비디오 검색 서버(190)가 메타데이터 데이터베이스(170)로부터 검색 쿼리에 부합하는 해당 채널 및 촬영 시간을 입수할 경우, 비디오 데이터베이스(140)의 모든 로우를 검색할 필요 없이, 해당 채널 및 시간에 해당하는 로우(row)만을 검색함으로써, 비디오 검색을 훨씬 빠르게 진행할 수 있다. 프로세스(800)는 블록(830)에서 검색된 비디오가 검색 쿼리에 적합한지를 검증하는 블록(840)으로 이어질 수 있다.
블록(840)에서, 비디오 데이터의 통합 분석 및 관리 시스템(100, 200 또는 300)의 비디오 검색 서버(190)는 비디오 데이터베이스(140)에서 검색된 비디오 데이터가 외부 사용자 단말(162)로부터의 검색 쿼리에 맞는 데이터인지를 검증할 수 있다. 이 검증 작업은 기존에 알려진 여러 형태로 수행될 수 있으며, 또한, 일부 실시예에 따라서는 블록(840)의 검증 작업을 생략할 수 있다. 위 검증 결과, 검색된 비디오 데이터가 검색 쿼리에 부합하지 않다고 판단되는 경우, 비디오 검색 서버(190)는 블록(820)의 메타데이터 데이터베이스(170)를 검색하는 작업을 다시 수행하거나, 일부 실시예에 따라서는 메타데이터 데이터베이스(170) 검색 작업을 생략하고 블록(830)의 비디오 데이터베이스(140)를 검색하는 작업을 수행할 수 있다. 프로세스(800)는 블록(840)에서 검색된 비디오를 외부 사용자 단말로 전송하는 블록(850)으로 이어질 수 있다.
블록(850)에서, 비디오 데이터의 통합 분석 및 관리 시스템(100, 200 또는 300)의 I/O 서버(180)는 비디오 검색 서버(190)가 검색한 검색 쿼리에 맞는 비디오 데이터를 외부 사용자 단말(162)로 전송할 수 있다. 일부 I/O 서버(180)가 생략된 시스템의 예에서는, 비디오 검색 서버(190)가 직접 외부 사용자 단말(162)로 검색 결과를 전송할 수 있다. 또한, 일부 실시예에서는, 비디오 컨버터(150)가 해당 검색 결과를 사용자가 미리 설정한 포맷에 따라 적절한 그래픽 유저 인터페이스로 생성하여 이를 사용자 단말(162) 및/또는 비디오 출력/제어 장치로 전송할 수 있다.
이러한 도 8의 프로세스(800)를 통해 외부 사용자는 본인이 찾고자 하는 특정 객체에 관한 원본 비디오 영상을 쉽고 빠르게 검색하여 볼 수 있으며, 나아가 해당 객체의 이동 경로 등의 객체 분석 결과도 함께 제공받을 수 있게 된다.
도 9는 본 개시의 적어도 일부 실시예에 따른 비디오 데이터를 통합 분석 및 관리하는 데 이용될 수 있는 예시적인 컴퓨터 프로그램 제품(900)을 도시한다. 예시적인 컴퓨터 프로그램 제품의 예시적인 실시예는 신호 베어링 매체(910)를 이용하여 제공된다. 일부 실시예에서, 하나 이상의 컴퓨터 프로그램 제품(900)의 신호 베어링 매체(910)는 컴퓨터 판독가능 매체(930) 및/또는 기록 가능 매체(940)를 포함할 수 있다.
신호 베어링 매체(910)에 포함된 명령어(920)는 비디오 통합 분석 및 관리 시스템(100, 200 또는 300)에 포함된 하나 이상의 컴퓨팅 장치에 의해 실행될 수 있다. 명령어(920)는 상기 하나 이상의 컴퓨팅 장치를 이용하여, 입력 비디오 제공 장치의 일 채널로부터 입력 비디오를 수신하는 명령어; 수신된 입력 비디오를 비디오 분석 서버 클러스터의 특정 비디오 분석 서버에 할당하는 명령어; 수신된 입력 비디오를 비디오 데이터베이스에 추가하는 명령어; 입력 비디오의 분석 작업 및 비디오에 포함된 객체 인식 작업을 수행하는 명령어; 인식된 객체의 메타데이터를 생성하는 명령어; 생성된 메타데이터로부터 인버스 피쳐를 생성하는 명령어; 비디오 분석 결과 데이터에 기초하여 소정 포맷의 화면 출력 영상을 생성하는 명령어; 및 생성된 화면 출력 영상을 비디오 출력/제어 장치로 전송하는 명령어 중 적어도 하나를 포함할 수 있다.
전술한 본원의 설명은 예시를 위한 것이며, 본원이 속하는 기술분야의 통상의 지식을 가진 자는 본원의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수도 있다.
이상, 본 개시에서 청구하고자 하는 대상에 대해 구체적으로 살펴보았다. 본 개시에서 청구된 대상은 앞서 기술한 특정 구현예로 그 범위가 제한되지 않는다. 예컨대, 어떤 구현예에서는 장치 또는 장치의 조합 상에서 동작 가능하게 사용되는 하드웨어의 형태일 수 있으며, 다른 구현예에서는 소프트웨어 및/또는 펌웨어의 형태로 구현될 수 있고, 또 다른 구현예에서는 신호 베어링 매체, 저장 매체와 같은 하나 이상의 물품을 포함할 수 있다. 여기서, CD-ROM, 컴퓨터 디스크, 플래시 메모리 등과 같은 저장 매체는, 예컨대 컴퓨팅 시스템, 컴퓨팅 플랫폼 또는 기타 시스템과 같은 컴퓨팅 장치에 의하여 실행될 때 앞서 설명한 구현예에 따라 해당 프로세서의 실행을 야기시킬 수 있는 명령을 저장할 수 있다. 이러한 컴퓨팅 장치는 하나 이상의 처리 유닛 또는 프로세서, 디스플레이, 키보드 및/또는 마우스와 같은 하나 이상의 입/출력 장치, 및 정적 랜덤 액세스 메모리, 동적 랜덤 액세스 메모리, 플래시 메모리 및/또는 하드 드라이브와 같은 하나 이상의 메모리를 포함할 수 있다.
한편, 시스템을 하드웨어로 구현할 것인지 아니면 소프트웨어로 구현할 것인지는, 일반적으로 비용 대비 효율의 트레이드오프를 나타내는 설계상 선택 문제이다. 본 개시에서는 프로세스, 시스템, 기타 다른 기술들의 영향을 받을 수 있는 다양한 수단(예를 들어, 하드웨어, 소프트웨어 및/또는 펌웨어)이 있으며, 선호되는 수단은 프로세스 및/또는 시스템 및/또는 다른 기술이 사용되는 맥락(context)에 따라 변경될 것이다. 예를 들어, 구현자가 속도 및 정확성이 가장 중요하다고 결정한다면, 구현자는 주로 하드웨어 및/또는 펌웨어 수단을 선택할 수 있으며, 유연성이 가장 중요하다면, 구현자는 주로 소프트웨어 구현을 선택할 수 있으며; 또는, 다른 대안으로서, 구현자는 하드웨어, 소프트웨어 및/또는 펌웨어의 어떤 결합을 선택할 수 있다.
전술한 상세한 설명에서는 블록도, 흐름도 및/또는 기타 예시를 통해 장치 및/또는 프로세스의 다양한 실시예를 설명하였다. 그러한 블록도, 흐름도, 및/또는 기타 예시는 하나 이상의 기능 및/또는 동작을 포함하게 되며, 당업자라면 블록도, 흐름도 및/또는 기타 예시 내의 각각의 기능 및/또는 동작이 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에 의해 개별적으로 혹은 집합적으로 구현될 수 있다는 점을 이해할 수 있을 것이다. 일 실시예에서, 본 개시에 기재된 대상의 몇몇 부분은 ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array), DSP(Digital Signal Processor) 또는 다른 집적의 형태를 통해 구현될 수 있다. 이와 달리, 본 개시의 실시예의 일부 양상은 하나 이상의 컴퓨터 상에 실행되는 하나 이상의 컴퓨터 프로그램(예를 들어, 하나 이상의 컴퓨터 시스템 상에 실행되는 하나 이상의 프로그램), 하나 이상의 프로세서 상에서 실행되는 하나 이상의 프로그램(예를 들어, 하나 이상의 마이크로프로세서 상에서 실행되는 하나 이상의 프로그램), 펌웨어 또는 이들의 실질적으로 임의의 조합으로써 전체적으로 또는 부분적으로 균등하게 집적 회로에서 구현될 수도 있으며, 소프트웨어 및/또는 펌웨어를 위한 코드의 작성 및/또는 회로의 설계는 본 개시에 비추어 당업자의 기술 범위 내에 속하는 것이다. 또한, 당업자라면, 본 개시의 대상의 매커니즘들이 다양한 형태의 프로그램 제품으로 분배될 수 있음을 이해할 것이며, 본 개시의 대상의 예시는 분배를 실제로 수행하는데 사용되는 신호 베어링 매체의 특정 유형과 무관하게 적용됨을 이해할 것이다.
특정 예시적 기법이 다양한 방법 및 시스템을 이용하여 여기에서 기술되고 도시되었으나, 당업자라면, 청구된 대상에서 벗어남이 없이, 다양한 기타의 수정 또는 등가물로의 치환 가능성을 이해할 수 있다. 추가적으로, 여기에 기술된 중심 개념으로부터 벗어남이 없이 특정 상황을 청구된 대상의 교시로 적응시키도록 많은 수정이 이루어질 수 있다. 따라서, 청구된 대상이 개시된 특정 예시로 제한되지 않으나, 그러한 청구된 대상은 또한 첨부된 청구범위 및 그 균등의 범위 내에 들어가는 모든 구현예를 포함할 수 있음이 의도된다.
본 개시 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한, 본 개시 전체에서, 어떤 부재가 다른 부재 "상에" 위치하고 있다고 할 때, 이는 어떤 부재가 다른 부재에 접해 있는 경우뿐 아니라 두 부재 사이에 또 다른 부재가 존재하는 경우도 포함한다. 나아가, 본 개시 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다. 본 개시에서 사용되는 정도의 용어 "약," "실질적으로" 등은 언급된 의미에 고유한 제조 및 물질 허용오차가 제시될 때 그 수치에서 또는 그 수치에 근접한 의미로 사용되고, 본원의 이해를 돕기 위해 정확하거나 절대적인 수치가 언급된 개시 내용을 비양심적인 침해자가 부당하게 이용하는 것을 방지하기 위해 사용된다.
본 개시의 범위는 전술한 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위, 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본원의 범위에 포함되는 것으로 해석되어야 한다.

Claims (20)

  1. 비디오 분석 및 관리 시스템으로서,
    외부 입력 비디오 제공 장치로부터 비디오 데이터를 수신하도록 구성된 라우팅 서버;
    상기 수신된 비디오 데이터를 저장하도록 구성된 비디오 데이터베이스;
    상기 비디오 데이터를 분석하도록 구성된 복수의 비디오 분석 서버를 포함하는 비디오 분석 서버 클러스터;
    상기 비디오 데이터의 메타데이터를 저장하도록 구성된 메타데이터 데이터베이스; 및
    상기 메타데이터 데이터베이스 및 상기 비디오 데이터베이스를 검색하도록 구성된 비디오 검색 서버
    를 포함하고,
    상기 라우팅 서버는 수신된 비디오 데이터의 특성에 따라 상기 비디오 분석 서버 클러스터의 복수의 비디오 분석 서버 중 특정 비디오 분석 서버에 상기 비디오 데이터의 분석을 할당하도록 더 구성되는 것인, 비디오 분석 및 관리 시스템.
  2. 삭제
  3. 제1항에 있어서,
    상기 수신된 비디오 데이터의 특성은, 상기 비디오 데이터를 촬영한 채널의 종류, 상기 채널의 특성 및 상기 비디오 데이터에 촬영된 객체들 중에서 인식 대상이 되는 객체의 종류 중 적어도 하나를 포함하는 것인, 비디오 분석 및 관리 시스템.
  4. 제1항에 있어서,
    상기 비디오 데이터베이스는 NoSQL 형태의 HBase 기반의 데이터베이스인 것인, 비디오 분석 및 관리 시스템.
  5. 제1항, 제3항 및 제4항 중 어느 한 항에 있어서,
    상기 비디오 분석 서버 클러스터의 상기 복수의 비디오 분석 서버 중 상기 라우팅 서버로부터 상기 비디오 데이터의 분석을 할당 받은 특정 비디오 분석 서버는 상기 비디오 데이터를 분석하여 이에 포함된 하나 이상의 객체를 인식하고 그 인식 결과에 따라 상기 메타데이터를 생성하도록 더 구성되는 것인, 비디오 분석 및 관리 시스템.
  6. 제5항에 있어서,
    상기 특정 비디오 분석 서버는, 상기 생성된 메타데이터에 기초하여, 인식된 상기 하나 이상의 객체 각각을 기준으로 정보가 정렬되는 인버스 피쳐(inverse feature)를 생성하도록 더 구성되고,
    상기 메타데이터 데이터베이스는 상기 생성된 인버스 피쳐를 저장하도록 더 구성되는 것인, 비디오 분석 및 관리 시스템.
  7. 제1항, 제3항 및 제4항 중 어느 한 항에 있어서,
    상기 비디오 검색 서버는 외부의 사용자 단말로부터 비디오 검색 쿼리를 수신하고, 수신된 검색 쿼리에 기초하여 상기 메타데이터 데이터베이스 및 상기 비디오 데이터 베이스 중 적어도 하나를 검색하도록 더 구성되는 것인, 비디오 분석 및 관리 시스템.
  8. 제7항에 있어서,
    상기 비디오 검색 서버는, 상기 검색 쿼리에 기초하여 상기 메타데이터 데이터베이스를 검색하여 상기 검색 쿼리에서 요구되는 비디오 데이터에 관한 정보를 입수하고, 입수된 정보에 기초하여 상기 비디오 데이터베이스를 검색하여 상기 검색 쿼리에서 요구되는 비디오 데이터를 입수하도록 더 구성되는 것인, 비디오 분석 및 관리 시스템.
  9. 제1항, 제3항 및 제4항 중 어느 한 항에 있어서,
    상기 비디오 분석 서버 클러스터의 분석 결과를 미리 정해진 포맷에 따른 그래픽 유저 인터페이스로 생성하도록 구성된 비디오 컨버터
    를 더 포함하는 비디오 분석 및 관리 시스템.
  10. 제1항, 제3항 및 제4항 중 어느 한 항에 있어서,
    상기 비디오 분석 서버 클러스터의 분석 결과 영상을 외부의 비디오 출력/제어 장치로 송신하고 외부의 사용자 단말로부터 비디오 검색 쿼리를 수신하도록 구성된 I/O 서버
    를 더 포함하는 비디오 분석 및 관리 시스템.
  11. 제1항, 제3항 및 제4항 중 어느 한 항에 있어서,
    상기 비디오 데이터베이스에 저장된 비디오 데이터를 학습하여 비디오 분석 모델을 생성하도록 구성되는 딥러닝 서버; 및
    상기 딥러닝 서버에서 생성된 비디오 분석 모델을 저장하도록 구성되는 학습데이터 결과값 데이터베이스
    를 더 포함하는 비디오 분석 및 관리 시스템.
  12. 제11항에 있어서,
    상기 딥러닝 서버는, 상기 비디오 분석 및 관리 시스템 외부의 다중 사용자를 위한 딥러닝 플랫폼 웹 인터페이스를 통해 접속한 사용자로 하여금 딥러닝에 참여하도록 하기 위해 상기 사용자에게 제공되는 상이한 방식의 작업 환경인, 비디오 데이터 학습을 위한 이지 트레이닝(easy training) 및 하드 트레이닝(hard training) 중 적어도 하나를 제공하도록 더 구성되는 것인, 비디오 분석 및 관리 시스템.
  13. 비디오 데이터의 통합적인 분석 및 관리를 위하여 비디오 분석 및 관리 시스템 내의 하나 이상의 컴퓨팅 장치에서 수행되는 방법으로서,
    복수 개의 채널을 포함하는 입력 비디오 제공 장치 중 어느 한 채널로부터 비디오 데이터를 수신하는 단계;
    상기 수신된 데이터의 특성에 따라, 상기 수신된 비디오 데이터를 상기 비디오 분석 및 관리 시스템 내의 복수의 비디오 분석 서버를 포함하는 비디오 분석 서버 클러스터 중 특정 비디오 분석 서버에 할당하는 단계;
    상기 특정 비디오 분석 서버에서 상기 비디오 데이터를 분석하여 이에 포함된 하나 이상의 객체를 인식하는 단계; 및
    상기 분석 및 객체 인식 결과에 기초하여 미리 설정된 포맷으로 그래픽 유저 인터페이스를 생성하는 단계
    를 포함하는 비디오 데이터의 통합적인 분석 및 관리 방법.
  14. 제13항에 있어서,
    상기 수신된 비디오 데이터를 상기 비디오 분석 및 관리 시스템 내의 비디오 데이터베이스에 저장하는 단계
    를 더 포함하며,
    상기 비디오 데이터베이스는 NoSQL 형태의 HBase 기반의 데이터베이스인 것인, 비디오 데이터의 통합적인 분석 및 관리 방법.
  15. 제14항에 있어서,
    상기 특정 비디오 분석 서버에서 상기 인식된 하나 이상의 객체에 관한 메타데이터를 생성하는 단계;
    상기 특정 비디오 분석 서버에서 상기 생성된 메타데이터를 기초로, 인식된 상기 하나 이상의 객체 각각을 기준으로 정보가 정렬되는 인버스 피쳐를 생성하는 단계; 및
    상기 생성된 메타데이터 및 인버스 피쳐를 상기 비디오 분석 및 관리 시스템 내의 메타데이터 데이터베이스에 저장하는 단계
    를 더 포함하는 비디오 데이터의 통합적인 분석 및 관리 방법.
  16. 제15항에 있어서,
    외부 사용자 단말로부터 특정 객체의 검색에 관한 검색 쿼리를 수신하는 단계;
    상기 수신된 검색 쿼리에 기초하여 상기 메타데이터 데이터베이스 및 상기 비디오 데이터 베이스 중 적어도 하나를 검색하는 단계; 및
    상기 검색 결과를 상기 외부 사용자 단말로 송신하는 단계
    를 더 포함하는 비디오 데이터의 통합적인 분석 및 관리 방법.
  17. 제16항에 있어서,
    상기 검색 결과가 상기 검색 쿼리에 적합한 지 여부를 판단하는 단계; 및
    상기 판단 결과 적합하지 않은 경우, 상기 수신된 검색 쿼리에 기초하여 상기 메타데이터 데이터베이스 및 상기 비디오 데이터 베이스 중 적어도 하나를 검색하는 단계
    를 더 포함하는 비디오 데이터의 통합적인 분석 및 관리 방법.
  18. 제13항 내지 제17항 중 어느 한 항에 있어서,
    상기 특정 비디오 분석 서버에서 상기 비디오 데이터를 분석하여 이에 포함된 하나 이상의 객체를 인식하는 단계는,
    상기 비디오 데이터를 제공하는 채널의 채널 메타데이터, 상기 비디오 데이터에 기초한 딥러닝을 통해 생성된 비디오 분석 모델 및 상기 비디오 분석 및 관리 시스템 외부에서 수신한 별도의 비디오 분석 모델 중 적어도 하나에 기초하여 상기 비디오 데이터를 분석하고 이에 포함된 하나 이상의 객체를 인식하는 단계를 포함하는 것인, 비디오 데이터의 통합적인 분석 및 관리 방법.
  19. 비디오 데이터의 통합적인 분석 및 관리를 위한 컴퓨터 프로그램을 저장한 컴퓨터 판독 가능 기록 매체로서, 상기 컴퓨터 프로그램은 비디오 분석 및 관리 시스템 내의 하나 이상의 컴퓨팅 장치에서 수행 가능한 하나 이상의 명령어를 포함하며, 상기 하나 이상의 명령어는,
    복수 개의 채널을 포함하는 입력 비디오 제공 장치 중 어느 한 채널로부터 비디오 데이터를 수신하기 위한 적어도 하나의 명령어;
    상기 수신된 비디오 데이터의 특성에 따라, 상기 수신된 비디오 데이터를 상기 비디오 분석 및 관리 시스템 내의 복수의 비디오 분석 서버를 포함하는 비디오 분석 서버 클러스터 중 특정 비디오 분석 서버에 할당하기 위한 적어도 하나의 명령어;
    상기 특정 비디오 분석 서버에서 상기 비디오 데이터를 분석하여 이에 포함된 하나 이상의 객체를 인식하기 위한 적어도 하나의 명령어; 및
    상기 분석 및 객체 인식 결과에 기초하여 미리 설정된 포맷으로 그래픽 유저 인터페이스를 생성하기 위한 적어도 하나의 명령어
    를 포함하는, 비디오 데이터의 통합적인 분석 및 관리를 위한 컴퓨터 프로그램을 저장한 컴퓨터 판독 가능 기록 매체.
  20. 제19항에 있어서,
    상기 하나 이상의 명령어는,
    외부 사용자 단말로부터 특정 객체의 검색에 관한 검색 쿼리를 수신하기 위한 적어도 하나의 명령어;
    상기 수신된 검색 쿼리에 기초하여 메타데이터 데이터베이스 및 비디오 데이터 베이스 중 적어도 하나를 검색하기 위한 적어도 하나의 명령어; 및
    상기 검색 결과를 상기 외부 사용자 단말로 송신하기 위한 적어도 하나의 명령어
    를 더 포함하는, 비디오 데이터의 통합적인 분석 및 관리를 위한 컴퓨터 프로그램을 저장한 컴퓨터 판독 가능 기록 매체.
KR1020200054310A 2020-05-07 2020-05-07 비디오 데이터 통합 분석 및 관리 시스템 KR102375145B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200054310A KR102375145B1 (ko) 2020-05-07 2020-05-07 비디오 데이터 통합 분석 및 관리 시스템
US17/923,247 US11907291B2 (en) 2020-05-07 2020-07-02 System for integral analysis and management of video data
PCT/KR2020/008630 WO2021225217A1 (ko) 2020-05-07 2020-07-02 비디오 데이터 통합 분석 및 관리 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200054310A KR102375145B1 (ko) 2020-05-07 2020-05-07 비디오 데이터 통합 분석 및 관리 시스템

Publications (2)

Publication Number Publication Date
KR20210136286A KR20210136286A (ko) 2021-11-17
KR102375145B1 true KR102375145B1 (ko) 2022-03-16

Family

ID=78468661

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200054310A KR102375145B1 (ko) 2020-05-07 2020-05-07 비디오 데이터 통합 분석 및 관리 시스템

Country Status (3)

Country Link
US (1) US11907291B2 (ko)
KR (1) KR102375145B1 (ko)
WO (1) WO2021225217A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114071183B (zh) * 2022-01-17 2022-05-17 中央广播电视总台 视频节目播出方法、装置、计算机设备及可读存储介质
KR102604126B1 (ko) 2023-01-02 2023-11-22 (주) 씨이랩 구독형 영상분석 시스템 및 이의 운용 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102043192B1 (ko) * 2019-05-27 2019-11-11 주식회사 인콘 딥러닝을 이용한 cctv 검색 및 비디오 편집 방법과 편집 장치

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8171030B2 (en) * 2007-06-18 2012-05-01 Zeitera, Llc Method and apparatus for multi-dimensional content search and video identification
US9525900B2 (en) 2011-09-15 2016-12-20 Google Inc. Video management system
US8719884B2 (en) * 2012-06-05 2014-05-06 Microsoft Corporation Video identification and search
KR101526499B1 (ko) 2015-01-02 2015-06-09 주식회사 아이티엑스시큐리티 객체검출 기능을 이용한 보안용 네트워크 방범 감시 시스템 및 이를 이용한 지능형 영상 분석 방법
US10834436B2 (en) * 2015-05-27 2020-11-10 Arris Enterprises Llc Video classification using user behavior from a network digital video recorder
US11405423B2 (en) 2016-03-11 2022-08-02 Netskope, Inc. Metadata-based data loss prevention (DLP) for cloud resources
US10826940B2 (en) 2016-03-11 2020-11-03 Netskope, Inc. Systems and methods of enforcing multi-part policies on data-deficient transactions of cloud computing services
US11425169B2 (en) 2016-03-11 2022-08-23 Netskope, Inc. Small-footprint endpoint data loss prevention (DLP)
JP7402183B2 (ja) 2018-05-23 2023-12-20 ネットスコープ, インク. 小さいフットプリントのエンドポイント・データ損失防止(dlp)
WO2021112517A1 (en) * 2019-12-06 2021-06-10 Samsung Electronics Co., Ltd. Method and electronic device for description parameter based modification of images
US20210174164A1 (en) * 2019-12-09 2021-06-10 Miso Technologies Inc. System and method for a personalized search and discovery engine
US11244167B2 (en) * 2020-02-06 2022-02-08 Adobe Inc. Generating a response to a user query utilizing visual features of a video segment and a query-response-neural network

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102043192B1 (ko) * 2019-05-27 2019-11-11 주식회사 인콘 딥러닝을 이용한 cctv 검색 및 비디오 편집 방법과 편집 장치

Also Published As

Publication number Publication date
KR20210136286A (ko) 2021-11-17
WO2021225217A1 (ko) 2021-11-11
US11907291B2 (en) 2024-02-20
US20230229700A1 (en) 2023-07-20

Similar Documents

Publication Publication Date Title
US11461392B2 (en) Providing relevant cover frame in response to a video search query
Kumar et al. Eratosthenes sieve based key-frame extraction technique for event summarization in videos
RU2628192C2 (ru) Устройство для семантической классификации и поиска в архивах оцифрованных киноматериалов
EP3370171B1 (en) Decomposition of a video stream into salient fragments
Mühling et al. Content-based video retrieval in historical collections of the German broadcasting archive
CN109871464B (zh) 一种基于ucl语义标引的视频推荐方法与装置
US10104345B2 (en) Data-enhanced video viewing system and methods for computer vision processing
KR102375145B1 (ko) 비디오 데이터 통합 분석 및 관리 시스템
US11051053B2 (en) Cloud DVR optimization
KR102043192B1 (ko) 딥러닝을 이용한 cctv 검색 및 비디오 편집 방법과 편집 장치
US11734343B1 (en) Hyperzoom attribute analytics on the edge
US11594043B1 (en) People and vehicle analytics on the edge
CN101908057B (zh) 信息处理装置与信息处理方法
Shahabi et al. Janus-multi source event detection and collection system for effective surveillance of criminal activity
Höferlin et al. Scalable video visual analytics
KR102523839B1 (ko) 객체 레이블링을 통한 사용자맞춤 이미지식별 딥러닝 모델 생성을 위한 시스템 및 이의 운용 방법
US11544339B2 (en) Automated sentiment analysis and/or geotagging of social network posts
Zhang et al. Dynamic multi-video summarization of sensor-rich videos in geo-space
Xu et al. Automated pedestrian safety analysis using data from traffic monitoring cameras
Aved Scene understanding for real time processing of queries over big data streaming video
Chiang et al. Quick browsing and retrieval for surveillance videos
Yin et al. Encoded semantic tree for automatic user profiling applied to personalized video summarization
Choe et al. Semantic video event search for surveillance video
KR20220005204A (ko) 개인화 딥러닝 모델 생성을 위한 플랫폼을 제공하는 시스템 및 이의 운용 방법
Niu et al. Real-time generation of personalized home video summaries on mobile devices

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right