KR102560308B1 - 외관 탐색을 위한 시스템 및 방법 - Google Patents
외관 탐색을 위한 시스템 및 방법 Download PDFInfo
- Publication number
- KR102560308B1 KR102560308B1 KR1020197019166A KR20197019166A KR102560308B1 KR 102560308 B1 KR102560308 B1 KR 102560308B1 KR 1020197019166 A KR1020197019166 A KR 1020197019166A KR 20197019166 A KR20197019166 A KR 20197019166A KR 102560308 B1 KR102560308 B1 KR 102560308B1
- Authority
- KR
- South Korea
- Prior art keywords
- objects
- delete delete
- video
- image
- images
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 114
- 238000004590 computer program Methods 0.000 claims abstract description 23
- 239000013598 vector Substances 0.000 claims description 79
- 238000012545 processing Methods 0.000 claims description 60
- 238000003860 storage Methods 0.000 claims description 51
- 238000004458 analytical method Methods 0.000 claims description 39
- 238000013528 artificial neural network Methods 0.000 claims description 33
- 238000013527 convolutional neural network Methods 0.000 claims description 11
- 238000000605 extraction Methods 0.000 claims description 2
- 238000000638 solvent extraction Methods 0.000 claims 2
- 230000008569 process Effects 0.000 description 34
- 230000000007 visual effect Effects 0.000 description 34
- 238000001514 detection method Methods 0.000 description 33
- 230000006870 function Effects 0.000 description 32
- 238000010586 diagram Methods 0.000 description 30
- 230000002123 temporal effect Effects 0.000 description 15
- 238000007726 management method Methods 0.000 description 13
- 230000011218 segmentation Effects 0.000 description 9
- 230000033001 locomotion Effects 0.000 description 7
- 241000282412 Homo Species 0.000 description 6
- 241001465754 Metazoa Species 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000001914 filtration Methods 0.000 description 5
- 230000000977 initiatory effect Effects 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 230000001815 facial effect Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003909 pattern recognition Methods 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005352 clarification Methods 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 239000002537 cosmetic Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000005021 gait Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000009420 retrofitting Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/52—Surveillance or monitoring of activities, e.g. for recognising suspicious objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/10—Image acquisition
- G06V10/12—Details of acquisition arrangements; Constructional details thereof
- G06V10/14—Optical characteristics of the device performing the acquisition or on the illumination arrangements
- G06V10/143—Sensing or illuminating at different wavelengths
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/25—Determination of region of interest [ROI] or a volume of interest [VOI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/26—Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
- G06V10/443—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
- G06V10/449—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
- G06V10/451—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
- G06V10/454—Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/46—Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
- G06V10/462—Salient features, e.g. scale invariant feature transforms [SIFT]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/56—Extraction of image or video features relating to colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
- G06V20/46—Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/19—Recognition using electronic means
- G06V30/192—Recognition using electronic means using simultaneous comparisons or correlations of the image signals with a plurality of references
- G06V30/194—References adjustable by an adaptive method, e.g. learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/422—Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
- H04N21/4223—Cameras
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44008—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/466—Learning process for intelligent management, e.g. learning user preferences for recommending movies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/466—Learning process for intelligent management, e.g. learning user preferences for recommending movies
- H04N21/4662—Learning process for intelligent management, e.g. learning user preferences for recommending movies characterized by learning algorithms
- H04N21/4666—Learning process for intelligent management, e.g. learning user preferences for recommending movies characterized by learning algorithms using neural networks, e.g. processing the feedback provided by the user
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/955—Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
- G06V20/44—Event detection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Medical Informatics (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Biodiversity & Conservation Biology (AREA)
- Image Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Closed-Circuit Television Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
장면의 비디오를 캡처하도록 구성된 하나 이상의 카메라들을 포함하는 외관 탐색 시스템이 제공되며, 비디오는 객체들의 이미지들을 갖는다. 시스템은 하나 이상의 프로세서들 및 하나 이상의 프로세서들에 의해 실행될 때 하나 이상의 프로세서들이 방법을 수행하게 하도록 구성된 컴퓨터 프로그램 코드가 저장된 메모리를 포함한다. 방법은 객체들의 이미지들내에서 객체들 중 하나 이상의 객체를 식별하는 단계를 포함한다. 방법은 식별된 객체들의 시그니처들을 생성하고 관심 객체의 시그니처를 생성하도록 구성된 러닝 머신을 구현하는 단계를 더 포함한다. 시스템은 객체들의 이미지들을 카메라로부터 하나 이상의 프로세서들로 전송하도록 구성된 네트워크를 더 포함한다. 방법은 식별된 객체들에 대한 유사성 점수(similarity score)들을 생성하기 위하여 관심 객체의 시그니처와 식별된 객체들의 시그니처들을 비교하는 단계, 및 유사성 점수들에 기반하여 객체들의 이미지들 중 하나 이상의 이미지들을 디스플레이상에서 제시하기 위한 명령을 송신하는 단계를 더 포함한다.
Description
본 출원은 2016년 12월 5일에 출원된 미국 가특허 출원 제62/430,292호 및 2017년 6월 30일에 출원된 미국 가특허 출원 제62/527,894호를 우선권으로 주장하며, 이로써 이들 가출원 모두는 원용에 의해 전체로서 본원에 통합된다.
본 청구대상은 비디오 감시(video surveillance)에 관한 것으로, 더욱 구체적으로는 비디오 감시 시스템의 비디오에서 관심 객체들을 식별하는 것에 관한 것이다.
객체 인식이라고도 불리는 컴퓨터 구현 시각적 객체 분류(computer implemented visual object classification)는 카메라에 의해 캡처된 정지 이미지들 또는 모션 비디오들에서 발견되는 실제(real-life) 객체들의 시각적 표현들을 분류하는 것과 관련된다. 시각적 객체 분류를 수행함으로써, 정지 이미지들 또는 모션 비디오에서 발견되는 각각의 시각적 객체는 자신의 유형(이를테면, 예컨대 인간, 차량 또는 동물)에 따라 분류된다.
자동화된 보안 및 감시 시스템들은 전형적으로 비디오 또는 비디오 푸티지(video footage)와 같은 이미지 데이터를 수집하기 위하여 비디오 카메라들, 또는 다른 이미지 캡처 디바이스들 또는 센서들을 채용한다. 가장 간단한 시스템에서, 이미지 데이터로 표현된 이미지들이 보안 요원에 의한 동시 검사를 위해 디스플레이되고 그리고/또는 보안 위반 이후에 추후 리뷰(review)를 위해 기록된다. 이러한 시스템들에서는 시각적 관심 객체들을 검출하고 분류하는 작업은 인간 관찰자에 의해 수행된다. 시스템 그 자체가 객체 검출 및 분류를 부분적으로 또는 완전히 수행할 수 있는 경우에 상당한 발전이 일어난다.
전형적인 감시 시스템에서는 환경을 통해 이동하는 인간들, 차량들, 동물들 등과 같은 객체들을 검출하는데 관심이 있을 수 있다. 그러나, 예컨대 대형 쇼핑몰에서 아이를 잃어버린 경우, 보안 직원이 잃어버린 아이의 비디오 푸티지를 수동으로 리뷰하는 데에는 시간이 매우 많이 걸릴 수 있다. 카메라들에 의해 캡처된 이미지 데이터에 의해 표현되는 이미지들에서 객체에 대한 컴퓨터-구현 검출은 잃어버린 아이를 시기 적절하게 찾기 위해 보안 요원이 관련 비디오 세그먼트들을 리뷰하는 작업을 상당히 용이하게 할 수 있다.
그렇다 해도, 객체들과 어떤 객체들이 유사한지를 검출하고 인식하기 위한 컴퓨터-구현 비디오 분석은 특히 원하는 정확도가 증가함에 따라 상당한 계산 자원들을 필요로 한다. 자원 활용을 최적화하기 위해 프로세싱이 분산될 수 있는 경우에는 컴퓨터 구현이 용이하게 될 것이다.
개시내용의 제1 양상에서, 장면의 비디오를 캡처하도록 구성된 하나 이상의 카메라들을 포함하는 외관 탐색 시스템이 제공되며, 비디오는 객체들의 이미지들을 갖는다. 시스템은 하나 이상의 프로세서들 및 컴퓨터 프로그램 코드가 저장된 메모리를 포함하며, 컴퓨터 프로그램 코드는 하나 이상의 프로세서들에 의해 실행될 때 하나 이상의 프로세서들이 방법을 수행하게 하도록 구성된다. 방법은 객체들의 이미지들내에서 객체들 중 하나 이상의 객체를 식별하는 단계를 포함한다. 방법은 식별된 객체들의 시그니처들을 생성하고 관심 객체의 시그니처를 생성하도록 구성된 러닝 머신을 구현하는 단계를 더 포함한다. 시스템은 객체들의 이미지들을 카메라로부터 하나 이상의 프로세서들로 전송하도록 구성된 네트워크를 더 포함한다. 방법은 식별된 객체들에 대한 유사성 점수(similarity score)들을 생성하기 위하여 관심 객체의 시그니처와 식별된 객체의 시그니처들을 비교하는 단계, 및 유사성 점수들에 기반하여 객체들의 이미지들 중 하나 이상의 이미지들을 디스플레이상에서 제시하기 위한 명령을 송신하는 단계를 더 포함한다.
시스템은 비디오, 및 식별된 객체들의 생성된 시그니처들을 저장하기 위한 저장 시스템을 더 포함할 수 있다.
구현된 러닝 머신은 제2 러닝 머신일 수 있으며, 식별하는 단계는 하나 이상의 프로세서들에 의해 구현되는 제1 러닝 머신에 의해 수행될 수 있다.
제1 및 제2 러닝 머신들은 뉴럴 네트워크들을 포함할 수 있다. 뉴럴 네트워크들은 콘볼루션 뉴럴 네트워크(convolutional neural network)들을 포함할 수 있다. 뉴럴 네트워크들 또는 콘볼루션 뉴럴 네트워크들은 트레이닝된 모델들을 포함할 수 있다.
시스템은 제1 및 제2 러닝 머신들을 실행하기 위한 하나 이상의 그래픽 프로세싱 유닛들을 더 포함할 수 있다.
하나 이상의 카메라들은 비디오 분석을 사용하여 객체들의 이미지들을 캡처하도록 추가로 구성될 수 있다.
하나 이상의 카메라들은 객체들의 분류에 의해 객체들의 이미지들을 필터링하도록 추가로 구성될 수 있다. 하나 이상의 카메라들은 인간 객체들을 포함하는 이미지들 중 하나 이상의 이미지를 식별하도록 추가로 구성될 수 있으며, 네트워크는 식별된 이미지들만을 하나 이상의 프로세서들로 전송하도록 추가로 구성될 수 있다.
객체들의 이미지들은 비디오의 이미지 프레임들의 부분들을 포함할 수 있다. 이미지 프레임들의 부분들은 이미지 프레임들의 제1 이미지 부분들을 포함할 수 있으며, 제1 이미지 부분들은 적어도 객체들을 포함한다. 이미지 프레임들의 부분들은 이미지 프레임들의 제2 이미지 부분들을 포함할 수 있고, 제2 이미지 부분들은 제1 이미지 부분들보다 더 크다. 제1 러닝 머신은 제2 러닝 머신에 대한 제2 이미지 부분들 내의 객체들 중 하나 이상 또는 모두의 윤곽을 보여주도록 구성될 수 있다.
하나 이상의 카메라들은 객체들의 이미지들의 비디오로부터의 추출을 허용하기 위한 참조 좌표들을 생성하도록 추가로 구성될 수 있다. 저장 시스템은 참조 좌표들을 저장하도록 구성될 수 있다.
하나 이상의 카메라들은 객체들의 이미지들 중 하나 이상의 이미지를 획득하기 위해 일정 시간 기간 동안 캡처된 비디오로부터 하나 이상의 이미지들을 선택하도록 추가로 구성될 수 있다.
객체들의 식별은 이미지들 내의 객체들 중 하나 이상의 객체들의 윤곽을 보여주는 것을 포함할 수 있다.
식별 단계는 이미지들 중 적어도 하나의 이미지내에서 객체들 중 다수의 객체들을 식별하는 단계; 및 이미지들 중 적어도 하나를 다수의 분할된 이미지들로 분할하는 단계를 포함할 수 있으며, 각각의 분할된 이미지는 식별된 객체들 중 하나의 객체의 적어도 일부를 포함한다. 방법은, 각각의 식별된 객체에 대해: 신뢰 레벨을 결정하는 단계; 및 신뢰 레벨이 신뢰 요건을 충족하지 못하는 경우 식별 단계 및 분할 단계가 제1 러닝 머신에 의해 수행되게 하거나 또는 신뢰 레벨이 신뢰 요건을 충족하는 경우 식별 단계 및 분할 단계가 제2 러닝 머신에 의해 수행되게 하는 단계를 포함할 수 있다.
하나 이상의 카메라들은 신뢰 레벨을 결정하기 위한 하나 이상의 비디오 분석 모듈들을 더 포함할 수 있다.
개시내용의 추가 양상에서, 장면의 비디오를 캡처하는 단계를 포함하는 방법이 제공되며, 비디오는 객체들의 이미지들을 가진다. 방법은 객체들의 이미지들 내에서 객체들 중 하나 이상의 객체를 식별하는 단계를 더 포함한다. 방법은, 러닝 머신을 사용하여, 식별된 객체들의 시그니처들 및 관심 객체의 시그니처를 생성하는 단계를 더 포함한다. 방법은 식별된 객체들의 시그니처들을 관심 객체의 제1 시그니처와 비교함으로써 식별된 객체들에 대한 유사성 점수들을 생성하는 단계를 더 포함한다. 방법은 유사성 점수들에 기반하여 객체들의 이미지들 중 하나 이상의 이미지를 디스플레이 상에서 제시하는 단계를 더 포함한다.
방법은 개시내용의 제1 양상과 관련하여 앞서 설명된 단계들 또는 동작들 중 임의의 것을 수행하는 단계를 더 포함할 수 있다.
개시내용의 또 다른 양상에서, 하나 이상의 프로세서들에 의해 실행가능하고 하나 이상의 프로세서들에 의해 실행될 때 하나 이상의 프로세서들이 방법을 수행하게 하도록 구성된 컴퓨터 프로그램 코드가 저장된 컴퓨터-판독가능 매체가 제공된다. 방법은 장면의 비디오를 캡처하는 단계를 포함하며, 비디오는 객체들의 이미지들을 갖는다. 방법은 객체들의 이미지들 내에서 객체들 중 하나 이상의 객체를 식별하는 단계를 더 포함한다. 방법은, 러닝 머신을 사용하여, 식별된 객체들의 시그니처들 및 관심 객체의 시그니처를 생성하는 단계를 더 포함한다. 방법은 식별된 객체들의 시그니처들을 관심 객체의 제1 시그니처와 비교함으로써 식별된 객체들에 대한 유사성 점수들을 생성하는 단계를 더 포함한다. 방법은 유사성 점수들에 기반하여 객체들의 이미지들 중 하나 이상의 이미지를 디스플레이 상에서 제시하는 단계를 더 포함한다.
하나 이상의 프로세서들에 의해 수행되는 방법은 개시내용의 제1 양상과 관련하여 앞서 설명된 단계들 또는 동작들 중 임의의 것을 수행하는 단계를 더 포함할 수 있다.
개시내용의 추가 양상에서, 장면의 비디오를 캡처하도록 구성된 하나 이상의 카메라들을 포함하는 시스템이 제공된다. 시스템은 하나 이상의 프로세서들 및 컴퓨터 프로그램 코드가 저장된 메모리를 더 포함하며, 컴퓨터 프로그램 코드는 하나 이상의 프로세서들에 의해 실행될 때 하나 이상의 프로세서들이 방법을 수행하게 하도록 구성된다. 방법은 비디오로부터 칩들을 추출하는 단계를 포함하며, 칩들은 객체들의 이미지를 포함한다. 방법은 칩들 중 적어도 하나의 칩 내에서 다수의 객체들을 식별하는 단계를 더 포함한다. 방법은 적어도 하나의 칩을 다수의 분할된 칩들로 분할하는 단계를 더 포함하며, 각각의 분할된 칩은 식별된 객체들 중 하나의 객체의 적어도 일부를 포함한다.
방법은 식별된 객체들의 시그니처들을 생성하고 관심 객체의 시그니처를 생성하도록 구성된 러닝 머신을 구현하는 단계를 더 포함할 수 있다. 러닝 머신은 제2 러닝 머신일 수 있으며, 식별 단계 및 분할 단계는 하나 이상의 프로세서들에 의해 구현되는 제1 러닝 머신에 의해 수행될 수 있다. 방법은, 각각의 식별된 객체에 대해: 신뢰 레벨을 결정하는 단계; 및 신뢰 레벨이 신뢰 요건을 충족하지 못하는 경우 식별 단계 및 분할 단계가 제1 러닝 머신에 의해 수행되게 하거나 또는 신뢰 레벨이 신뢰 요건을 충족하는 경우 식별 단계 및 분할 단계가 제2 러닝 머신에 의해 수행되게 하는 단계를 더 포함할 수 있다. 하나 이상의 카메라들은 신뢰 레벨을 결정하기 위한 하나 이상의 비디오 분석 모듈들을 더 포함할 수 있다.
적어도 하나의 칩은 적어도 하나의 패딩된 칩(padded chip)을 포함할 수 있다. 각각의 패딩된 칩은 비디오의 이미지 프레임의 제1 이미지 부분을 포함할 수 있다. 적어도 하나의 칩은 적어도 하나의 비-패딩된 칩(non-padded chip)을 더 포함할 수 있다. 각각의 비-패딩된 칩은 비디오의 이미지 프레임의 제2 이미지 부분을 포함할 수 있으며, 제2 이미지 부분은 제1 이미지 부분보다 작다.
개시내용의 또 다른 양상에서, 하나 이상의 프로세서들에 의해 실행가능하고 하나 이상의 프로세서들에 의해 실행될 때 하나 이상의 프로세서들이 방법을 수행하게 하도록 구성된 컴퓨터 프로그램 코드가 저장된 컴퓨터-판독가능 매체가 제공된다. 방법은 장면의 비디오를 획득하는 단계를 포함한다. 방법은 비디오로부터 칩들을 추출하는 단계를 더 포함하며, 칩들은 객체들의 이미지들을 포함한다. 방법은 칩들 중 적어도 하나의 칩 내에서 다수의 객체들을 식별하는 단계를 더 포함한다. 방법은 적어도 하나의 칩을 다수의 분할된 칩들로 분할하는 단계를 더 포함하며, 각각의 분할된 칩은 식별된 객체들 중 하나의 객체의 적어도 일부를 포함한다.
하나 이상의 프로세서들에 의해 수행되는 방법은 바로 앞서 설명된 시스템과 관련하여 앞서 설명된 단계들 또는 동작들 중 임의의 것을 수행하는 단계를 더 포함할 수 있다.
개시내용의 추가 양상에서, 외관 탐색 시스템이 제공되며, 외관 탐색 시스템은 장면들의 비디오들을 캡처하기 위한 카메라들 ― 비디오들은 객체들의 이미지들을 가짐 ―; 비디오들과 연관된 객체들의 이미지들로부터 시그니처들을 생성하고 관심 객체의 제1 이미지로부터 제1 시그니처를 생성하기 위한 러닝 머신을 가진 프로세서; 카메라들로부터의 객체들의 이미지들을 프로세서로 전송하기 위한 네트워크; 및 객체들의 생성된 시그니처들 및 연관된 비디오들을 저장하기 위한 저장 시스템을 포함하며, 프로세서는 유사성 점수들을 생성하기 위하여 이미지들로부터의 시그니처들을 관심 객체의 제1 시그니처와 추가로 비교하고 디스플레이에서 사용자들에게 제시하기 위한, 보다 높은 유사성 점수들을 가진 객체들의 이미지들을 추가로 준비한다.
일부 예시적인 실시예들에 따르면, 러닝 머신은 뉴럴 네트워크이다.
일부 예시적인 실시예들에 따르면, 뉴럴 네트워크는 콘볼루션 뉴럴 네트워크이다.
일부 예시적인 실시예들에 따르면, 뉴럴 네트워크는 트레이닝된 모델이다.
일부 예시적인 실시예들에 따르면, 그래픽 프로세싱 유닛은 러닝 머신을 실행하기 위해 사용된다.
일부 예시적인 실시예들에 따르면, 객체들의 이미지들은 카메라들에서 캡처되고 카메라들에서 비디오 분석을 사용하여 프로세싱된다.
일부 예시적인 실시예들에 따르면, 객체들의 이미지들은 프로세서로 전송되기 전에 카메라들에서 객체 유형의 분류에 의해 필터링된다.
일부 예시적인 실시예들에 따르면, 프로세서로 전송되는 객체 유형은 인간이다.
일부 예시적인 실시예들에 따르면, 카메라들이 비디오들로부터 객체들의 이미지들을 캡처하는 것은 객체들의 이미지들이 참조 좌표들에 기반하여 비디오들로부터 추출될 수 있도록 비디오들 내의 이미지들의 참조 좌표들을 캡처하는 것을 더 포함한다.
일부 예시적인 실시예들에 따르면, 비디오로부터 추출된 이미지들은 삭제되고, 저장 시스템은 시그니처들, 참조 좌표들 및 비디오를 저장한다.
일부 예시적인 실시예들에 따르면, 비디오 분석은 일정 시간 기간의 객체의 캡처된 이미지들을 나타내기 위해 일정 시간 기간 동안 객체의 하나 이상의 이미지들을 선택한다.
개시내용의 또 다른 양상에서, 카메라에 의해 캡처된 비디오들에 있는 관심 객체에 대한 컴퓨터-구현 외관 탐색 방법이 제공되며, 방법은 카메라에 의해 찍힌 비디오들로부터 객체들의 이미지들을 추출하는 단계; 객체들의 이미지들 및 비디오들을 네트워크를 통해 프로세서에 전송하는 단계; 프로세서가 러닝 머신을 사용하여 객체들의 이미지들로부터 시그니처들을 생성하는 단계; 객체들의 시그니처들 및 객체들과 연관된 비디오들을 저장 시스템에 저장하는 단계; 프로세서가 러닝 머신을 사용하여 임의의 관심 객체의 이미지로부터 시그니처를 생성하는 단계; 프로세서가 비교 별로 유사성 점수를 생성하기 위하여 관심 객체의 시그니처와 저장 시스템의 이미지들로부터의 시그니처들을 비교하는 단계; 및 디스플레이에서 사용자들에게 제시하기 위한, 보다 높은 유사성 점수들을 가진 객체들의 이미지들을 준비하는 단계를 포함한다.
개시내용의 또 다른 양상에서, 카메라에 의해 캡처된 비디오들에 있는 관심 객체에 대한 컴퓨터-구현 외관 탐색 방법이 제공되며, 방법은 카메라에 의해 찍힌 비디오들로부터 객체들의 이미지들을 추출하는 단계; 객체들의 이미지들 및 비디오들을 네트워크를 통해 프로세서에 전송하는 단계; 프로세서가 러닝 머신을 사용하여 객체들의 이미지들로부터 시그니처들을 생성하는 단계 ― 객체들의 이미지들은 관심 객체의 이미지들을 포함함 ―; 객체들의 시그니처들 및 객체들과 연관된 비디오들을 저장 시스템에 저장하는 단계; 저장 시스템을 통해 관심 객체의 이미지의 인스턴스(instance)를 탐색하는 단계; 관심 객체의 이미지의 인스턴스에 대한 관심 객체의 시그니처를 저장 시스템으로부터 리트리브(retrieving)하는 단계; 프로세서가 비교 별로 유사성 점수를 생성하기 위하여 관심 객체의 시그니처와 저장 시스템의 이미지들로부터의 시그니처들을 비교하는 단계; 및 디스플레이에서 사용자들에게 제시하기 위한, 보다 높은 유사성 점수들을 가진 객체들의 이미지들을 준비하는 단계를 포함한다.
개시내용의 또 다른 양상에서, 프로세서에 의해 실행될 때, 프로세서가 카메라에 의해 캡처된 비디오들에 있는 관심 객체에 대한 외관 탐색 방법을 수행하게 하는 명령들이 저장된 비-일시적 컴퓨터-판독가능 저장 매체가 제공되며, 방법은 카메라에 의해 찍힌 비디오들로부터 객체들의 이미지들을 추출하는 단계; 객체들의 이미지들 및 비디오들을 네트워크를 통해 프로세서에 전송하는 단계; 프로세서가 러닝 머신을 사용하여 객체들의 이미지들로부터 시그니처들을 생성하는 단계 ― 객체들의 이미지들은 관심 객체의 이미지들을 포함함 ―; 객체들의 시그니처들 및 객체들과 연관된 비디오들을 저장 시스템에 저장하는 단계; 저장 시스템을 통해 관심 객체의 이미지의 인스턴스를 탐색하는 단계; 관심 객체의 이미지의 인스턴스에 대한 관심 객체의 시그니처를 저장 시스템으로부터 리트리브하는 단계; 프로세서가 비교 별로 유사성 점수를 생성하기 위하여 관심 객체의 시그니처와 저장 시스템의 이미지들로부터의 시그니처들을 비교하는 단계; 및 디스플레이에서 사용자들에게 제시하기 위한, 보다 높은 유사성 점수들을 가진 객체들의 이미지들을 준비하는 단계를 포함한다.
상세한 설명은 다음의 도면들을 참조한다.
도 1은 예시적인 실시예에 따른 비디오 캡처 및 재생 시스템의 연결된 디바이스들의 블록도를 예시하며;
도 2a는 하나의 예시적인 실시예에 따른 비디오 캡처 및 재생 시스템의 동작 모듈들의 세트의 블록도를 예시하며;
도 2b는 하나의 특정한 예시적인 실시예에 따른 비디오 캡처 및 재생 시스템의 동작 모듈들의 세트의 블록도를 예시하며, 여기서 비디오 분석 모듈(224), 비디오 관리 모듈(232) 및 저장 디바이스(240)는 하나 이상의 이미지 캡처 디바이스들(108)상에서 전체적으로 구현되며;
도 3은 비디오 캡처 디바이스에 의해 캡처된 비디오의 하나 이상의 이미지 프레임들에 대해 비디오 분석을 수행하기 위한 방법의 예시적인 실시예의 흐름도를 예시하며;
도 4는 비디오 캡처 디바이스(카메라)에 의해 캡처된 비디오의 하나 이상의 이미지 프레임들에 대해 관심 객체의 위치를 찾기 위한 외관 매칭을 수행하기 위한 방법의 예시적인 실시예의 흐름도를 예시하며;
도 5는 관심 객체의 기록된 비디오들의 위치를 찾기 위해 클라이언트에서 외관 매칭을 수행하기 위한 외관 탐색의 세부사항들을 도시한 도 4의 예시적인 실시예의 흐름도를 예시하며;
도 6은 선택된 시간 전에 또는 선택된 시간 이후에 관심 객체의 기록된 비디오들의 위치를 찾기 위해 클라이언트(420)에서 외관 매칭을 수행하기 위한 시간경과 외관 탐색의 세부사항들을 도시한 도 4의 예시적인 실시예의 흐름도를 예시하며;
도 7은 저장 전 객체 프로파일(Object Profile) 및 저장 동안 크기가 축소된 객체 프로파일의 예시적인 메타데이터(metadata)의 블록도들을 예시하며;
도 8은 도 4의 예시적인 실시예의 장면 및 잘라낸 경계 상자들을 예시하며;
도 9는 하나의 예시적인 실시예에 따른 비디오 분석 모듈의 동작 서브-모듈들의 세트의 블록도를 예시하며;
도 10a는 하나의 예시적인 실시예에 따른 특징 벡터들을 생성하기 위한 프로세스의 블록도를 예시하며;
도 10b는 대안적인 예시적인 실시예에 따른 특징 벡터들을 생성하기 위한 대안 프로세스의 블록도를 예시하며;
도 11은 잘라낸 경계 상자들을 생성하는 예시적인 실시예의 흐름도를 예시하며; 그리고
도 12는 카메라에 의해 보는 이미지들, 패딩된 잘라낸 경계 상자들 및 분석 모듈에 의해 생성된 잘라낸 경계 상자들의 예들을 예시한다.
예시의 단순화 및 명확화를 위해 도면들에 도시된 엘리먼트들은 반드시 실척대로 도시된 것은 아니라는 것이 인식될 것이다. 예컨대, 엘리먼트들 중 일부 엘리먼트의 치수들은 명확화를 위해 다른 엘리먼트들에 비해 과장될 수 있다. 또한, 적절한 것으로 고려되는 경우, 참조 부호들은 대응하거나 유사한 엘리먼트들을 표시하기 위하여 도면들 사이에서 반복될 수 있다.
도 1은 예시적인 실시예에 따른 비디오 캡처 및 재생 시스템의 연결된 디바이스들의 블록도를 예시하며;
도 2a는 하나의 예시적인 실시예에 따른 비디오 캡처 및 재생 시스템의 동작 모듈들의 세트의 블록도를 예시하며;
도 2b는 하나의 특정한 예시적인 실시예에 따른 비디오 캡처 및 재생 시스템의 동작 모듈들의 세트의 블록도를 예시하며, 여기서 비디오 분석 모듈(224), 비디오 관리 모듈(232) 및 저장 디바이스(240)는 하나 이상의 이미지 캡처 디바이스들(108)상에서 전체적으로 구현되며;
도 3은 비디오 캡처 디바이스에 의해 캡처된 비디오의 하나 이상의 이미지 프레임들에 대해 비디오 분석을 수행하기 위한 방법의 예시적인 실시예의 흐름도를 예시하며;
도 4는 비디오 캡처 디바이스(카메라)에 의해 캡처된 비디오의 하나 이상의 이미지 프레임들에 대해 관심 객체의 위치를 찾기 위한 외관 매칭을 수행하기 위한 방법의 예시적인 실시예의 흐름도를 예시하며;
도 5는 관심 객체의 기록된 비디오들의 위치를 찾기 위해 클라이언트에서 외관 매칭을 수행하기 위한 외관 탐색의 세부사항들을 도시한 도 4의 예시적인 실시예의 흐름도를 예시하며;
도 6은 선택된 시간 전에 또는 선택된 시간 이후에 관심 객체의 기록된 비디오들의 위치를 찾기 위해 클라이언트(420)에서 외관 매칭을 수행하기 위한 시간경과 외관 탐색의 세부사항들을 도시한 도 4의 예시적인 실시예의 흐름도를 예시하며;
도 7은 저장 전 객체 프로파일(Object Profile) 및 저장 동안 크기가 축소된 객체 프로파일의 예시적인 메타데이터(metadata)의 블록도들을 예시하며;
도 8은 도 4의 예시적인 실시예의 장면 및 잘라낸 경계 상자들을 예시하며;
도 9는 하나의 예시적인 실시예에 따른 비디오 분석 모듈의 동작 서브-모듈들의 세트의 블록도를 예시하며;
도 10a는 하나의 예시적인 실시예에 따른 특징 벡터들을 생성하기 위한 프로세스의 블록도를 예시하며;
도 10b는 대안적인 예시적인 실시예에 따른 특징 벡터들을 생성하기 위한 대안 프로세스의 블록도를 예시하며;
도 11은 잘라낸 경계 상자들을 생성하는 예시적인 실시예의 흐름도를 예시하며; 그리고
도 12는 카메라에 의해 보는 이미지들, 패딩된 잘라낸 경계 상자들 및 분석 모듈에 의해 생성된 잘라낸 경계 상자들의 예들을 예시한다.
예시의 단순화 및 명확화를 위해 도면들에 도시된 엘리먼트들은 반드시 실척대로 도시된 것은 아니라는 것이 인식될 것이다. 예컨대, 엘리먼트들 중 일부 엘리먼트의 치수들은 명확화를 위해 다른 엘리먼트들에 비해 과장될 수 있다. 또한, 적절한 것으로 고려되는 경우, 참조 부호들은 대응하거나 유사한 엘리먼트들을 표시하기 위하여 도면들 사이에서 반복될 수 있다.
본원에서 설명된 예시적인 실시예들의 철저한 이해를 제공하기 위해 다수의 특정 세부사항들이 제시된다. 그러나, 당업자는 본원에서 설명된 실시예들이 이들 특정 세부사항들 없이 실시될 수 있음을 이해할 것이다. 다른 사례들에서는 본원에서 설명된 실시예들을 모호하게 하지 않기 위해 공지된 방법들, 절차들 및 컴포넌트들을 상세히 설명하지 않았다. 더욱이, 본 설명은 본원에서 설명된 실시예들의 범위를 어떤 식으로든 제한하는 것이 아니라, 오히려 단지 본원에서 설명된 다양한 실시예들의 구현을 설명하는 것으로 간주되어야 한다.
단수 형태는, 청구항들 및/또는 명세서에서 "포함하는" 또는 "구비하는"이라는 용어와 함께 사용되는 경우, "하나"를 의미할 수 있으나, 내용이 달리 명확하게 표시하지 않는 한 "하나 이상", "적어도 하나", 및 "하나 또는 그 초과"의 의미와 또한 일치한다. 유사하게, "(또) 다른" 이라는 용어는 내용이 달리 명확하게 표시하지 않는 한 적어도 제2 또는 그 초과를 의미할 수 있다.
본원에서 사용되는, "커플링된", "커플링하는" 또는 "연결된"이라는 용어들은 이들 용어들이 사용되는 문맥에 따라 여러 상이한 의미들을 가질 수 있다. 예컨대, "커플링된", "커플링하는" 또는 "연결된" 이라는 용어들은 기계적인 또는 전기적인 함축적 의미를 가질 수 있다. 예컨대, 본원에서 사용되는, "커플링된", "커플링하는" 또는 "연결된"이라는 용어들은 2개의 엘리먼트들 또는 디바이스들이 서로 직접 연결되거나, 특정 맥락에 따라 전기 엘리먼트, 전기 신호 또는 기계 엘리먼트에 의하여 하나 이상의 중간 엘리먼트들 또는 디바이스들을 통해 서로 연결된다는 것을 표시할 수 있다.
여기서, 이미지는 복수의 순차적인 이미지 프레임들을 포함할 수 있으며, 이 복수의 순차적인 이미지 프레임들은 함께 비디오 캡처 디바이스에 의해 캡처된 비디오를 형성한다. 각각의 이미지 프레임은 픽셀들의 매트릭스로 표현될 수 있으며, 각각의 픽셀은 픽셀 이미지 값을 갖는다. 예컨대, 픽셀 이미지 값은 그레이 스케일에 대한 수치 값(예컨대: 0 내지 255) 또는 컬러 이미지들에 대한 복수의 수치 값일 수 있다. 이미지 데이터의 픽셀 이미지 값들을 표현하기 위하여 사용되는 색상 공간(color space)들의 예들은 RGB, YUV, CYKM, YCBCR 4:2:2, YCBCR 4:2:0 이미지들을 포함한다.
본원에서 "메타데이터" 또는 이의 변형들은 비디오의 이미지들을 포함하는 이미지들의 컴퓨터-구현 분석에 의해 획득된 정보를 지칭한다. 예컨대, 비디오 프로세싱은 이미지 프로세싱 동작들, 비디오 데이터의 분석, 관리, 압축, 인코딩, 저장, 송신 및/또는 재생을 포함할 수 있지만, 이에 제한되는 것은 아니다. 비디오의 분석은 이미지 프레임들의 영역들을 세그먼트화하고 시각적 객체들을 검출하는 것, 이미지 데이터에 의해 표현된 캡처된 장면 내에 위치한 시각적 객체를 추적 및/또는 분류하는 것을 포함할 수 있다. 이미지 데이터의 프로세싱은 또한 이미지들 내에서 캡처된 이미지 데이터 또는 시각적 객체들에 관한 부가적인 정보가 출력되게 할 수 있다. 예컨대, 이러한 부가 정보는 보통 메타데이터로서 이해된다. 메타데이터는 또한 이미지 데이터의 추가 프로세싱을 위해, 이를테면 이미지 프레임들에서 검출된 객체들 주위의 경계 상자들을 그리기 위해 사용될 수 있다.
당업자에 의해 인식되는 바와같이, 본원에 설명된 다양한 예시적인 실시예들은 방법, 시스템 또는 컴퓨터 프로그램 제품으로서 구현될 수 있다. 따라서, 다양한 예시적인 실시예들은 전적으로 하드웨어 실시예, 전적으로 소프트웨어 실시예(펌웨어, 상주 소프트웨어, 마이크로 코드 등을 포함함) 또는 소프트웨어 양상 및 하드웨어 양상을 결합한 실시예의 형태를 취할 수 있으며, 이들은 모두 일반적으로 본원에서 "회로", "모듈" 또는 "시스템"으로 지칭될 수 있다. 더욱이, 다양한 예시적인 실시예들은 컴퓨터-사용가능 프로그램 코드가 내부에 수록된 컴퓨터-사용가능 저장 매체상의 컴퓨터 프로그램 제품의 형태를 취할 수 있다.
임의의 적절한 컴퓨터-사용 가능 또는 컴퓨터 판독 가능 매체가 활용될 수 있다. 컴퓨터-사용가능 또는 컴퓨터-판독 가능 매체는 예컨대 전자, 자기, 광학, 전자기, 적외선 또는 반도체 시스템, 장치, 디바이스 또는 매체일 수 있지만, 이에 제한되는 것은 아니다. 본 문서의 맥락에서, 컴퓨터-사용 가능 또는 컴퓨터-판독 가능 매체는 명령 실행 시스템, 장치 또는 디바이스에 의해 또는 이와 관련하여 사용하기 위한 프로그램을 포함하고 저장하는 임의의 매체일 수 있다.
다양한 예시적인 실시예들의 동작들을 수행하기 위한 컴퓨터 프로그램 코드는 Java, Smalltalk, C++, Python 등과 같은 객체 지향 프로그래밍 언어로 작성될 수 있다. 그러나, 다양한 예시적인 실시예들의 동작들을 수행하기 위한 컴퓨터 프로그램 코드는 또한 "C" 프로그래밍 언어 또는 유사한 프로그래밍 언어들과 같은 종래의 절차적 프로그래밍 언어들로 작성될 수 있다. 프로그램 코드는 컴퓨터상에서 전적으로 실행되거나, 컴퓨터상에서 부분적으로 실행되거나, 독립형 소프트웨어 패키지로서 실행되거나, 컴퓨터상에서 부분적으로 그리고 원격 컴퓨터상에서 부분적으로 실행되거나, 또는 원격 컴퓨터 또는 서버상에서 전적으로 실행될 수 있다. 후자의 시나리오에서, 원격 컴퓨터는 근거리 통신망(LAN: local area network) 또는 원거리 통신망(WAN: wide area network)을 통해 컴퓨터에 연결될 수 있거나, 또는 이러한 연결은(예컨대, 인터넷 서비스 사업자를 사용하여 인터넷을 통해) 외부 컴퓨터에 대해 이루어질 수 있다.
다양한 예시적인 실시예들은 본 발명의 실시예들에 따른 방법들, 장치(시스템들) 및 컴퓨터 프로그램 제품들의 흐름도들 및/또는 블록도를 참조하여 아래에서 설명된다. 흐름도들 및/또는 블록도들의 각각의 블록, 및 흐름도들 및/또는 블록도들에서의 블록들의 조합은 컴퓨터 프로그램 명령들에 의해 구현될 수 있다는 것이 이해될 것이다. 이들 컴퓨터 프로그램 명령들은 머신을 생성하기 위해 범용 컴퓨터, 특수 목적 컴퓨터 또는 다른 프로그램가능 데이터 프로세싱 장치의 프로세서에 제공되어, 컴퓨터 또는 다른 프로그램가능 데이터 프로세싱 장치의 프로세서를 통해 실행되는 명령들은 흐름도 및/또는 블록도 블록 또는 블록들에서 특정된 기능들/동작들을 구현하기 위한 수단을 생성할 수 있다.
이들 컴퓨터 프로그램 명령들은 또한 컴퓨터-판독가능 메모리에 저장될 수 있으며, 컴퓨터 또는 다른 프로그램가능 데이터 프로세싱 장치가 특정 방식으로 기능을 하도록 지시할 수 있으며, 이에 따라 컴퓨터-판독가능 메모리에 저장된 명령들은 흐름도 및/또는 블록도의 블록 또는 블록들에서 특정된 기능/동작을 구현하는 명령들을 포함하는 제조 물품을 초래한다.
컴퓨터 프로그램 명령들은 또한 컴퓨터 또는 다른 프로그램가능 데이터 프로세싱 장치상에 로드되어, 일련의 동작 단계들이 컴퓨터 또는 다른 프로그램가능 장치상에서 수행되게 함으로써 컴퓨터 구현 프로세스를 초래하며, 이에 따라 컴퓨터 또는 다른 프로그램가능 장치상에서 실행되는 명령들은 흐름도 및/또는 블록도의 블록 또는 블록들에서 특정된 기능들/동작들을 구현하기 위한 단계들을 제공한다.
이제 도 1을 참조하면, 예시적인 실시예에 따른, 비디오 캡처 및 재생 시스템(100)의 연결된 디바이스들의 블록도가 여기에 예시되어 있다. 예컨대, 비디오 캡처 및 재생 시스템(100)은 비디오 감시 시스템으로서 사용될 수 있다. 비디오 캡처 및 재생 시스템(100)은 본원에서 설명된 프로세스들 및 기능들을 수행하는 하드웨어 및 소프트웨어를 포함한다.
비디오 캡처 및 재생 시스템(100)은 복수의 이미지들을 캡처하고 복수의 캡처된 이미지들을 나타내는 이미지 데이터를 생성하도록 동작 가능한 적어도 하나의 비디오 캡처 디바이스(108)를 포함한다. 비디오 캡처 디바이스(108) 또는 카메라(108)는 이미지 캡처 디바이스이며, 보안 비디오 카메라들을 포함한다.
각각의 비디오 캡처 디바이스(108)는 복수의 이미지들을 캡처하기 위한 적어도 하나의 이미지 센서(116)를 포함한다. 비디오 캡처 디바이스(108)는 디지털 비디오 카메라일 수 있고, 이미지 센서(116)는 캡처된 광을 디지털 데이터로서 출력할 수 있다. 예컨대, 이미지 센서(116)는 CMOS, NMOS 또는 CCD일 수 있다. 일부 실시예들에서, 비디오 캡처 디바이스(108)는 인코더에 연결된 아날로그 카메라일 수 있다.
적어도 하나의 이미지 센서(116)는 하나 이상의 주파수 범위들의 광을 캡처하도록 동작 가능할 수 있다. 예컨대, 적어도 하나의 이미지 센서(116)는 가시광선 주파수 범위에 실질적으로 대응하는 범위의 광을 캡처하도록 동작 가능할 수 있다. 다른 예들에서, 적어도 하나의 이미지 센서(116)는 적외선 및/또는 자외선 범위와 같은 가시광선 범위 외부의 광을 캡처하도록 동작 가능할 수 있다. 다른 예들에서, 비디오 캡처 디바이스(108)는 상이한 주파수 범위들의 광을 캡처하도록 동작 가능한 2개 이상의 센서들을 포함하는 멀티-센서 카메라일 수 있다.
적어도 하나의 비디오 캡처 디바이스(108)는 전용 카메라를 포함할 수 있다. 본원에서의 전용 카메라는 기본 기능들이 이미지들 또는 비디오를 캡처하는 카메라를 지칭하는 것으로 이해될 것이다. 일부 예시적인 실시예들에서, 전용 카메라는 자신에 의해 또는 다른 비디오 캡처 디바이스(108)에 의해 생성된 이미지 데이터를 생성하는 것과 같은(그러나, 이에 제한되지 않음), 캡처된 이미지들 또는 비디오와 연관된 기능들을 수행할 수 있다. 예컨대, 전용 카메라는 팬-틸트-줌 카메라(pan-tilt-zoom camera), 돔 카메라(dome camera), 천정 카메라(in-ceiling camera), 박스형 카메라(box camera) 및 불릿 카메라(bullet camera) 중 어느 하나와 같은 감시 카메라일 수 있다.
부가적으로 또는 대안으로, 적어도 하나의 비디오 캡처 디바이스(108)는 내장형 카메라를 포함할 수 있다. 본원에서의 내장형 카메라는 캡처된 이미지 또는 비디오와 무관한 기능들을 수행하도록 동작하는 디바이스내에 내장된 카메라를 지칭하는 것으로 이해될 것이다. 예컨대, 내장형 카메라는 랩톱, 태블릿, 드론 디바이스, 스마트폰, 비디오 게임 콘솔 또는 제어기 중 어느 하나상에 있는 카메라일 수 있다.
각각의 비디오 캡처 디바이스(108)는 하나 이상의 프로세서들(124), 프로세서들에 커플링된 하나 이상의 메모리 디바이스들(132) 및 하나 이상의 네트워크 인터페이스들을 포함한다. 메모리 디바이스는 프로그램 명령들의 실행 동안 사용되는 로컬 메모리(이를테면, 예컨대, 랜덤 액세스 메모리 및 캐시 메모리)를 포함할 수 있다. 프로세서는 메모리 디바이스에 저장될 수 있는 컴퓨터 프로그램 명령들(이를테면, 예컨대, 오퍼레이팅 시스템 및/또는 애플리케이션 프로그램들)을 실행한다.
다양한 실시예들에서, 프로세서(124)는 디지털 신호 프로세서(DSP), 그래픽 프로세싱 유닛(GPU) 내장 프로세서 등, 및 이들의 임의의 적절한 조합을 포함하는 하나 이상의 회로 유닛들이 가능하게는 리던던트하게(redundantly) 동작하게 하는 것을 포함하여 독립적으로 또는 병렬로 동작하게 하는 임의의 적절한 프로세싱 회로에 의해 구현될 수 있다. 이러한 프로세싱 회로는 모놀리식 집적 회로(MIC), 주문형 집적 회로(ASIC), 필드 프로그램가능 게이트 어레이(FPGA) 등 또는 이들의 임의의 적절한 조합에 의해 구현되는 것을 포함하여, 하나 이상의 집적 회로(IC)에 의해 구현될 수 있다. 부가적으로 또는 대안적으로, 이러한 프로세싱 회로는 예컨대 프로그램가능 논리 제어기(PLC)로서 구현될 수 있다. 프로세서는 디지털 데이터와 같은 메모리를 저장하기 위한 회로를 포함할 수 있으며, 예컨대 메모리 회로를 포함하거나 메모리 회로와 유선 통신할 수 있다.
다양한 예시적인 실시예들에서, 프로세서 회로에 커플링된 메모리 디바이스(132)는 데이터 및 컴퓨터 프로그램 명령들을 저장하도록 동작가능하다. 전형적으로, 메모리 디바이스는 디지털 전자 집적 회로의 전부 또는 일부이거나 또는 복수의 디지털 전자 집적 회로들로 형성된다. 메모리 디바이스는 예컨대 판독-전용 메모리(ROM), 프로그램가능 판독-전용 메모리(PROM), 소거가능 프로그램가능 판독-전용 메모리(EPROM), 전기적으로 소거 가능한 프로그램가능 판독-전용 메모리(EEPROM), 플래시 메모리, 하나 이상의 플래시 드라이브들, 유니버셜 시리얼 버스(USB)) 연결 메모리 유닛들, 자기 스토리지, 광학 스토리지, 자기-광학 스토리지 등 또는 이들의 임의의 조합으로서 구현될 수 있다. 메모리 디바이스는 휘발성 메모리, 비-휘발성 메모리, 동적 메모리 등 또는 이들의 임의의 조합으로서 메모리를 저장하도록 동작가능할 수 있다.
다양한 예시적인 실시예들에서, 이미지 캡처 디바이스(108)의 복수의 컴포넌트들은 시스템 온 칩(SOC)내에서 함께 구현될 수 있다. 예컨대, 프로세서(124), 메모리 디바이스(116) 및 네트워크 인터페이스는 SOC내에서 구현될 수 있다. 또한, 이러한 방식으로 구현될 때, 범용 프로세서 및 GPU 및 DSP 중 하나 이상이 SOC 내에서 함께 구현될 수 있다.
도 1을 계속 참조하면, 적어도 하나의 비디오 캡처 디바이스(108) 각각은 네트워크(140)에 연결된다. 각각의 비디오 캡처 디바이스(108)는 자신이 이미지 데이터를 캡처하여 네트워크를 통해 송신하는 이미지들을 나타내는 이미지 데이터를 출력하도록 동작가능하다.
네트워크(140)가 데이터의 수신 및 송신을 제공하는 임의의 적절한 통신 네트워크일 수 있다는 것이 이해될 것이다. 예컨대, 네트워크(140)는 근거리 통신망, 외부 네트워크(이를테면, 예컨대, WAN 또는 인터넷) 또는 이들의 조합일 수 있다. 다른 예들에서, 네트워크(140)는 클라우드 네트워크를 포함할 수 있다.
일부 예들에서, 비디오 캡처 및 재생 시스템(100)은 프로세싱 기기(148)를 포함한다. 프로세싱 기기(148)는 비디오 캡처 디바이스(108)에 의해 출력된 이미지 데이터를 프로세싱하도록 동작 가능하다. 프로세싱 기기(148)는 또한 프로세서(CPU)에 커플링된 하나 이상의 프로세서들 및 하나 이상의 메모리 디바이스들을 포함한다. 프로세싱 기기(148)는 또한 하나 이상의 네트워크 인터페이스들을 포함할 수 있다. 예시의 편의상, 단지 하나의 프로세싱 기기(148)만이 도시되나; 비디오 캡처 및 재생 시스템(100)은 임의의 적절한 개수의 프로세싱 기기들(148)을 포함할 수 있다는 것이 이해될 것이다.
예컨대, 그리고 예시된 바와 같이, 프로세싱 기기(148)는 이미지 데이터를 프로세싱하기 위해 메모리(132) 또는 CPU(124)를 갖지 않을 수 있는 비디오 캡처 디바이스(108)에 연결된다. 프로세싱 기기(148)는 네트워크(140)에 추가로 연결될 수 있다.
하나의 예시적인 실시예에 따르면 그리고 도 1에 예시된 바와같이, 비디오 캡처 및 재생 시스템(100)은 적어도 하나의 워크스테이션(156)(이를테면, 예컨대 서버)을 포함하며, 워크스테이션(156) 각각은 그래픽 프로세싱 유닛(GPU)들을 포함하는 하나 이상의 프로세서를 갖는다. 적어도 하나의 워크스테이션(156)은 또한 저장 메모리를 포함할 수 있다. 워크스테이션(156)은 적어도 하나의 비디오 캡처 디바이스(108)로부터 이미지 데이터를 수신하고 이미지 데이터의 프로세싱을 수행한다. 워크스테이션(156)은 이미지 캡처 디바이스들(108) 중 하나 이상을 관리 및/또는 제어하기 위한 커맨드들을 추가로 전송할 수 있다. 워크스테이션(156)은 비디오 캡처 디바이스(108)로부터 미가공 이미지 데이터를 수신할 수 있다. 선택적으로 또는 부가적으로, 워크스테이션(156)은 비디오 캡처 디바이스(108) 및/또는 프로세싱 기기(148)에서의 프로세싱과 같은 일부 중간 프로세싱을 사전에 거친 이미지 데이터를 수신할 수 있다. 워크스테이션(156)은 또한 이미지 데이터로부터 메타데이터를 수신하고 이미지 데이터의 추가 프로세싱을 수행할 수 있다.
단일 워크스테이션(156)이 도 1에 예시되어 있지만, 워크스테이션은 복수의 워크스테이션들의 집합으로서 구현될 수 있다는 것이 이해될 것이다.
비디오 캡처 및 재생 시스템(100)은 네트워크(140)에 연결된 적어도 하나의 클라이언트 디바이스(164)를 더 포함한다. 클라이언트 디바이스(164)는 비디오 캡처 및 재생 시스템(100)과 상호작용하기 위해 하나 이상의 사용자들에 의해 사용된다. 따라서, 클라이언트 디바이스(164)는 적어도 하나의 디스플레이 디바이스 및 적어도 하나의 사용자 입력 디바이스(이를테면, 예컨대, 마우스, 키보드 또는 터치 스크린)를 포함한다. 클라이언트 디바이스(164)는 정보를 디스플레이하고, 사용자 입력을 수신하고, 그리고 비디오를 재생하기 위한 사용자 인터페이스를 자신의 디스플레이 디바이스 상에 디스플레이하도록 동작 가능하다. 예컨대, 클라이언트 디바이스는 퍼스널 컴퓨터, 랩톱들, 태블릿, 개인 휴대 정보 단말기(PDA), 셀 폰, 스마트 폰, 게임 디바이스 및 다른 모바일 장치 중 어느 하나일 수 있다.
클라이언트 디바이스(164)는 네트워크(140)를 통해 이미지 데이터를 수신하도록 동작가능하고, 수신된 이미지 데이터를 재생하도록 추가로 동작 가능하다. 클라이언트 디바이스(164)는 또한 이미지 데이터를 프로세싱하기 위한 기능들을 가질 수 있다. 예컨대, 클라이언트 디바이스(164)의 프로세싱 기능들은 수신된 이미지 데이터를 재생하는 능력과 관련된 프로세싱으로 제한될 수 있다. 다른 예들에서, 이미지 프로세싱 기능들은 워크스테이션과 하나 이상의 클라이언트 디바이스들(164)간에 공유될 수 있다.
일부 예들에서, 이미지 캡처 및 재생 시스템(100)은 워크테이션(156) 없이 구현될 수 있다. 따라서, 이미지 프로세싱 기능은 하나 이상의 비디오 캡처 디바이스들(108)에서 전체적으로 수행될 수 있다. 대안적으로, 이미지 프로세싱 기능들은 비디오 캡처 디바이스들(108), 프로세싱 기기(148) 및 클라이언트 디바이스들(164) 중 2개 이상 사이에서 공유될 수 있다.
이제 도 2a를 참조하면, 하나의 예시적인 실시예에 따른 비디오 캡처 및 재생 시스템(100)의 동작 모듈들의 세트(200)의 블록도가 여기에 예시되어 있다. 동작 모듈은 도 1에 예시된 바와 같은 비디오 캡처 및 재생 시스템(100)의 디바이스들 중 하나 이상에서 하드웨어, 소프트웨어 또는 이들 둘 모두로 구현될 수 있다.
동작 모듈들의 세트(200)는 적어도 하나의 비디오 캡처 모듈(208)을 포함한다. 예컨대, 각각의 비디오 캡처 디바이스(108)는 비디오 캡처 모듈(208)을 구현할 수 있다. 비디오 캡처 모듈(208)은 이미지들을 캡처하도록 비디오 캡처 디바이스(108)의 하나 이상의 컴포넌트들(이를테면, 예컨대, 센서(116)) 제어하도록 동작가능하다.
동작 모듈들의 세트(200)는 이미지 데이터 프로세싱 모듈들의 서브세트(216)를 포함한다. 예컨대 그리고 예시된 바와같이, 이미지 데이터 프로세싱 모듈들의 서브세트(216)는 비디오 분석 모듈(224) 및 비디오 관리 모듈(232)을 포함한다.
비디오 분석 모듈(224)은 이미지 데이터를 수신하고 이미지 데이터를 분석하여, 캡처된 이미지 또는 비디오의 특성들 또는 특징들 및/또는 이미지 또는 비디오에 의해 표현된 장면에서 발견된 객체들의 특성들 또는 특징들을 결정한다. 비디오 분석 모듈(224)은, 이루어진 결정들에 기반하여, 결정들에 대한 정보를 제공하는 메타데이터를 추가로 출력할 수 있다. 비디오 분석 모듈(224)에 의해 이루어진 결정들의 예들은 전경/배경 세그먼트화, 객체 검출, 객체 추적, 객체 분류, 가상 트립와이어, 이상 검출, 얼굴 검출, 얼굴 인식, 번호판 인식, “남겨진” 또는 "제거된” 객체들 식별 "및 비즈니스 인텔리전스 중 하나 이상을 포함할 수 있다. 그러나, 당업계에 공지된 다른 비디오 분석 기능들이 또한 비디오 분석 모듈(224)에 의해 구현될 수 있음이 이해될 것이다.
비디오 관리 모듈(232)은 이미지 데이터를 수신하고 비디오 송신, 재생 및/또는 저장과 관련된 이미지 데이터에 대한 프로세싱 기능들을 수행한다. 예컨대, 비디오 관리 모듈(232)은 대역폭 요건들 및/또는 용량에 따라 이미지 데이터의 송신을 허용하도록 이미지 데이터를 프로세싱할 수 있다. 비디오 관리 모듈(232)은 또한 클라이언트 디바이스(164)의 디스플레이의 프로세싱 전력 및/또는 해상도와 같이 비디오를 재생할 클라이언트 디바이스(164)의 재생 능력들에 따라 이미지 데이터를 프로세싱할 수 있다. 비디오 관리 모듈(232)은 또한 이미지 데이터를 저장하기 위한 비디오 캡처 및 재생 시스템(100)의 저장 용량에 따라 이미지 데이터를 프로세싱할 수 있다.
일부 예시적인 실시예들에 따라, 비디오 프로세싱 모듈들의 서브세트(216)는 비디오 분석 모듈(224) 및 비디오 관리 모듈(232) 중 하나만을 포함할 수 있음이 이해될 것이다.
동작 모듈들의 세트(200)는 저장 모듈들의 서브세트(240)를 더 포함한다. 예컨대 그리고 예시된 바와같이, 저장 모듈들의 서브세트(240)는 비디오 저장 모듈(248) 및 메타데이터 저장 모듈(256)을 포함한다. 비디오 저장 모듈(248)은 비디오 관리 모듈에 의해 프로세싱되는 이미지 데이터일 수 있는 이미지 데이터를 저장한다. 메타데이터 저장 모듈(256)은 비디오 분석 모듈(224)로부터 출력된 정보 데이터를 저장한다.
비디오 저장 모듈(248) 및 메타데이터 저장 모듈(256)은 별개의 모듈들로 예시되어 있지만, 이들은 동일한 하드웨어 저장 디바이스내에서 구현되어 저장된 비디오를 저장된 메타데이터와 분리하도록 논리 규칙들이 구현될 수 있다는 것이 이해될 것이다. 다른 예시적인 실시예들에서, 비디오 저장 모듈(248) 및/또는 메타데이터 저장 모듈(256)은 분산 저장 방식이 구현될 수 있는 복수의 하드웨어 저장 디바이스들내에서 구현될 수 있다.
동작 모듈들의 세트는 이미지 데이터를 수신하고 이미지 데이터를 비디오로서 재생하도록 동작 가능한 적어도 하나의 비디오 재생 모듈(264)을 더 포함한다. 예컨대, 비디오 재생 모듈(264)은 클라이언트 디바이스(164)상에서 구현될 수 있다.
세트(200)의 동작 모듈들은 이미지 캡처 디바이스(108), 프로세싱 기기(148), 워크스테이션(156) 및 클라이언트 디바이스(164) 중 하나 이상에서 구현될 수 있다. 일부 예시적인 실시예들에서, 동작 모듈은 단일 디바이스 상에서 전체적으로 구현될 수 있다. 예컨대, 비디오 분석 모듈(224)은 워크스테이션(156) 상에서 전체적으로 구현될 수 있다. 유사하게, 비디오 관리 모듈(232)은 워크스테이션(156)상에서 전체적으로 구현될 수 있다.
다른 예시적인 실시예들에서, 세트(200)의 동작 모듈의 일부 기능들은 제1 디바이스상에서 부분적으로 구현될 수 있는 반면, 동작 모듈의 다른 기능들은 제2 디바이스상에서 구현될 수 있다. 예컨대, 비디오 분석 기능들은 이미지 캡처 디바이스(108), 프로세싱 기기(148) 및 워크스테이션(156) 중 하나 이상 사이에서 분할될 수 있다. 유사하게, 비디오 관리 기능들은 이미지 캡처 디바이스(108), 프로세싱 기기(148) 및 워크스테이션(156) 중 하나 이상 사이에 분할될 수 있다.
이제 도 2b를 참조하면, 비디오 분석 모듈(224), 비디오 관리 모듈(232) 및 저장 디바이스(240)가 하나 이상의 이미지 캡처 디바이스들(108)상에서 전체적으로 구현되는 하나의 특정한 예시적인 실시예에 따른 비디오 캡처 및 재생 시스템(100)의 동작 모듈들의 세트(200)의 블록도가 여기에 예시되어 있다. 대안적으로, 비디오 분석 모듈(224), 비디오 관리 모듈(232) 및 저장 디바이스(240)는 프로세싱 기기(148)상에서 전체적으로 구현된다.
이미지 데이터(비디오) 프로세싱 모듈들의 서브세트(216)가 단일 디바이스 상에서 또는 비디오 캡처 및 재생 시스템(100)의 다양한 디바이스들 상에서 구현될 수 있게 하는 것이 시스템(100)을 구축하는데 있어서 융통성을 허용한다는 것이 인식될 것이다.
예컨대, 특정 기능들을 갖는 특정 디바이스를 그러한 기능들이 결여된 다른 디바이스와 함께 사용하는 것이 선택될 수 있다. 이는 (예컨대, 제조업체들과 같은) 다른 당사자들의 디바이스들을 통합하거나 기존 비디오 캡처 및 재생 시스템을 개장(retrofit)하는 경우에 유용할 수 있다.
이제 도 3을 참조하면, 비디오 캡처 디바이스(108)에 의해 캡처된 비디오의 하나 이상의 이미지 프레임들에 대해 비디오 분석을 수행하기 위한 방법(350)의 예시적인 실시예의 흐름도가 여기에 예시되어 있다. 비디오 분석은 캡처된 이미지 또는 비디오의 특성들 또는 특징들 및/또는 비디오에서 캡처된 장면에서 발견된 시각적 객체들의 특성들 또는 특징들을 결정하기 위해 비디오 분석 모듈(224)에 의해 수행된다.
300에서, 비디오의 적어도 하나의 이미지 프레임은 전경 영역들 및 배경 영역들로 세그먼트화된다. 세그먼트화는 장면의 정지 영역들로부터, 캡처된 장면의 움직이는 객체들(또는 이전에 움직이는 객체들)에 대응하는 이미지 프레임의 영역들을 분리한다.
302에서, 이미지 프레임에 의해 표현되는 장면 내의 하나 이상의 전경 시각적 객체들이 300의 세그먼트화에 기반하여 검출된다. 예컨대, 임의의 이산 연속 전경 영역 또는 "블랍(blob)"은 장면의 전경 시각적 객체로서 식별될 수 있다. 예컨대, (예컨대, 픽셀들의 수와 같은) 특정 크기보다 더 큰 연속 전경 영역들만이 장면에서 전경의 시각적 객체로 식별된다.
검출된 하나 이상의 전경 영역들에 관련한 메타데이터가 추가로 생성될 수 있다. 메타데이터는 이미지 프레임 내의 전경 시각적 객체 또는 객체의 위치, 참조 좌표들을 정의할 수 있다. 예컨대, 위치 메타데이터는 검출된 전경 시각적 객체의 윤곽을 보여주는 경계 상자를 (이를테면, 예컨대 비디오를 인코딩할 때 또는 비디오를 재생할 때) 생성하는데 추가로 사용될 수 있다. 네트워크(140)를 통해 워크스테이션(156)과 같은 다른 디바이스들에서 연관된 비디오와 함께 추가로 프로세싱될 수 있는 메타데이터에 포함시키기 위해, 잘라낸 경계 상자(또한 “칩(Chip)”으로서 지칭됨)라 불리는 경계 상자내의 이미지가 추출된다. 간단히 말해서, 잘라낸 경계 상자 또는 칩은 검출된 전경 시각적 객체를 포함하는 비디오의 이미지 프레임의 잘라낸 부분이다. 잘라낸 경계 상자인 추출된 이미지는 대안적으로 경계 상자에 있던 것보다 작거나 경계 상자에 있던 것보다 더 클 수 있다. 예컨대, 추출되는 이미지의 크기는 검출된 객체의 실제 경계들에 가깝지만 그 경계들 밖에 있어야 한다. 경계 상자들은 전형적으로 모양이 직사각형이지만 또한 객체들의 윤곽을 자세히 보여주는 불규칙한 모양들일 수 있다. 경계 상자는 예컨대 인간 객체의 경계들(윤곽)을 가깝게 따를 수 있다.
또 다른 실시예에서, 추출된 이미지의 크기는 검출된 객체의 실제 경계들보다 더 크며, 이는 본원에서 패딩된 잘라낸 경계 상자(이는 또한 "패딩된 칩(Padded Chip)"으로 지칭됨)로 불린다. 패딩된 잘라낸 경계 상자는 예컨대 그것이 전체적으로 또는 부분적으로 검출된 전경 시각적 객체에 근접하거나 또는 이 전경 시각적 객체와 중첩하는 객체들을 포함하도록 경계 상자의 면적의 두 배가 될 수 있다. 이후, 더 명확화하기 위하여, 패딩된 잘라낸 경계 상자들은 경계 상자들 내의 객체들의 이미지들의 잘라낸 경계 상자들(본원에서는 비-패딩된 잘라낸 경계 상자들로 칭함) 보다 더 큰 이미지들을 가진다. 명확화를 위해, 본원에서 사용되는 잘라낸 경계 상자들은 패딩된 잘라낸 경계 상자들 및 비-패딩 잘라낸 경계 상자들을 포함한다. 패딩된 잘라낸 경계 상자의 이미지 크기는 약간 더 큰 크기 (예컨대, 10% 더 큰 크기)에서부터 상당히 더 큰 크기(예컨대, 1000% 더 큰 크기)까지 변할 수 있다는 것이 이해될 것이다.
본원의 실시예들이, 원래의 비-패딩된 잘라낸 경계 상자의 참조 좌표들을 계속해서 유지하면서 초과 픽셀(extra pixel)들을 갖는 확장된 비-패딩된 잘라낸 경계 상자들인 것으로, 패딩된 잘라낸 경계 상자를 설명하였지만, 확장 또는 초과 픽셀들은 수직축 대신에 수평축에 더 많이 추가될 수 있다. 게다가, 초과 픽셀들의 확장은 객체에 대한 축을 중심으로 대칭 또는 비대칭일 수 있다. 비-패딩된 잘라낸 경계 상자의 객체는 패딩된 잘라낸 경계 상자 뿐만아니라 비-패딩된 잘라낸 경계 상자의 중심에 위치할 수 있으나, 일부 실시예들은 이러한 객체들 중심에서 벗어나게 위치시킬 수 있다.
일부 실시예들에서, 패딩된 잘라낸 경계 상자들 및 비-패딩된 잘라낸 경계 상자들을 포함하는 잘라낸 경계 상자들은 비디오의 이미지 프레임들의 실제 추출된 이미지들 대신에 비디오의 이미지 프레임들의 참조 좌표들일 수 있다. 이때, 잘라낸 경계 상자 이미지들은 필요할 때 이미지 프레임들로부터 추출될 수 있다. 이미지들이 카메라(108)에 의해 포착되는 예들의 경우, 패딩된 잘라낸 경계 상자들, 및 패딩된 잘라낸 경계 상자들로부터 유도된 잘라낸 경계 상자들은 비디오 분석 모듈(224)에 전송되며, 비디오 분석 모듈(224)은 예컨대 서버상에서 잘라낸 경계 상자를 프로세싱할 수 있다.
검출된 하나 이상의 전경 시각적 객체들 각각을 시각적으로 식별하기 위해, 시각 표시자가 이미지 프레임에 추가될 수 있다. 시각 표시자는 이미지 프레임 내의 하나 이상의 전경 시각적 객체들 각각을 둘러싸는 경계 상자일 수 있다.
일부 예시적인 실시예들에서, 비디오 분석은, 304에서, 302에서 검출된 전경의 시각적 객체들(또는 객체들)을 분류하는 것을 더 포함할 수 있다. 예컨대, 전경의 시각적 객체들을 분류하기 위해, 패턴 인식이 수행될 수 있다. 전경 시각적 객체는 사람, 자동차 또는 동물과 같은 클래스 별로 분류될 수 있다. 부가적으로 또는 대안적으로, 시각적 객체는 시각적 객체의 움직임 및 움직임 방향과 같은 동작에 의해 분류될 수 있다. 컬러, 크기, 배향 등과 같은 다른 분류자들이 또한 결정될 수 있다. 보다 특정한 예들에서, 시각적 객체를 분류하는 것은 얼굴 검출 및 번호판과 같은 텍스트의 인식에 기반하여 사람을 식별하는 것을 포함할 수 있다. 시각적 분류는 공동 소유된 미국 특허 제8,934,709호에 설명된 시스템들 및 방법들에 따라 수행될 수 있으며, 이 특허는 그 전체가 인용에 의해 본원에 통합된다.
비디오 분석은, 306에서, 이벤트가 발생했는지의 여부 및 이벤트의 유형을 검출하는 것을 더 포함할 수 있다. 이벤트를 검출하는 것은 하나 이상의 미리 정의된 규칙들과 하나 이상의 전경 시각적 객체들의 분류의 비교에 기반할 수 있다. 이 이벤트는 비디오 트립와이어가 트리거되었는지 여부, 한 영역에 있는 사람들의 수, 장면의 객체가 "남겨져 있는지" 여부 또는 장면의 객체가 제거되었는지 여부와 같은, 비정상 검출 또는 비즈니스 인텔리전스의 이벤트일 수 있다.
비디오 분석의 일례는, 306에서, 인간만을 검출하도록 세팅될 수 있고, 그러한 검출 시에, 네트워크(140)를 통해 워크스테이션(156)과 같은 다른 디바이스들에서 연관된 비디오와 함께 추가로 프로세싱될 수 있는 (310) 메타데이터에 포함시키기 위하여, 잘라낸 경계 상자들 각각의 참조 좌표들을 사용하여 인간 객체들의 잘라낸 경계 상자들을 추출할 수 있다.
이제 도 4를 참조하면, 비디오 캡처 디바이스(108)(카메라(108))에 의해 캡처된 비디오의 하나 이상의 이미지 프레임들 상에서 관심 객체의 위치를 찾기 위하여 외관 매칭을 수행하기 위한 방법(400)의 예시적인 실시예의 흐름도가 여기에 예시되어 있다. 비디오는 일정 시간 기간 동안 카메라(108)에 의해 캡처된다. 시간은 몇 시간, 몇 일 또는 몇 달일 수 있으며, 여러 비디오 파일들 또는 세그먼트들에 걸쳐 연장될 수 있다. 본원에서 사용되는 "비디오"의 의미는, 시간의 표시들을 가지며 2개 이상의 카메라가 있는 경우들에 어떤 카메라(108)인지를 식별하는 연관된 메타데이터를 갖는 비디오 파일들 및 비디오 세그먼트들을 포함한다. 비디오의 프로세싱은 여러 스테이지들로 분리되며, 관심 객체들(또는 사람들)의 후속 탐색을 위해 자원 활용 및 인덱싱을 최적화하도록 분배된다. 이후, 그러한 관심 사람들이 탐색에서 발견된 비디오는 사용자들에 의해 리뷰될 수 있다.
장면(402)의 비디오는 카메라(108)에 의해 캡처된다. 장면(402)은 카메라(108)의 시야 내에 있다. 비디오는 잘라낸 경계 상자들(404)을 갖는 메타데이터를 생성하기 위해 카메라(108)내의 비디오 분석 모듈(224)에 의해 프로세싱된다. 비디오 분석 모듈(224)은 객체 검출 및 분류를 수행하고, 또한 장면(402)의 객체들을 가장 잘 표현하는 이미지들(잘라낸 경계 상자들)을 비디오로부터 생성한다. 이 예에서, 사람들 또는 인간들로서 분류된 객체들의 이미지들은 비디오로부터 추출되고, 추가 식별 프로세싱을 위하여 잘라낸 경계 상자들(404)로서 메타데이터에 포함된다. 비디오 및 잘라낸 경계 상자들(404)을 가진 메타데이터는 네트워크(140)를 통해 서버(406)로 전송된다. 서버(406)는 워크스테이션(156) 또는 클라이언트 디바이스(164)일 수 있다.
서버(406)에서는 장면(402)내의 객체들을 표현하기 위해 잘라낸 경계 상자들(108) 및 생성된 특징 벡터들(또는 "시그니처들" 또는 "2진 표현들")(410)을 추가로 프로세싱(408)하기 위한 자원들이 상당히 더 많이 있다. 프로세스(408)는 예컨대 당업계에서 특징 기술자(feature descriptor)로 알려져 있다.
컴퓨터 비전에서, 특징 기술자는 일반적으로 이미지를 취하고, 이미지 변환을 통해 특징 기술들 또는 특징 벡터들을 출력하는 알고리즘으로서 알려져 있다. 특징 기술자들은 한 특징을 다른 특징으로부터 구별하는데 사용될 수 있는 수치적 "지문(fingerprint)"으로서 역할을 하도록 정보, 즉 이미지를 일련의 숫자들로 인코딩한다. 이상적으로, 이러한 정보는 이미지 변환 중에 변화하지 않으므로 동일한 객체의 다른 이미지에서 특징들이 다시 발견될 수 있다. 특징 기술자 알고리즘들의 예들은 SIFT(Scale-invariant feature transform), HOG(histogram of oriented gradients), 및 SURF(Speeded Up Robust Features)이다.
특징 벡터는 컴퓨터들에 의해 프로세싱될 수 있는 객체의 이미지를 표현하는 수치적 특징들(숫자들)의 n-차원 벡터들이다. 하나의 객체의 하나의 이미지의 특징 벡터를 다른 이미지의 특징 벡터와 비교함으로써, 컴퓨터 구현가능 프로세스는 하나의 이미지와 다른 이미지가 동일한 객체의 이미지들인지 여부를 결정할 수 있다. 이미지 시그니처들(또는 특징 벡터들, 또는 임베딩, 또는 표현 등)은 (예컨대 콘볼루션) 뉴럴 네트워크들에 의해 산출된 다-차원 벡터들이다.
카메라(108)에 의해 캡처된 2개의 이미지들의 2개의 특징 벡터들 간의 유클리드 거리(Euclidean distance)를 계산함으로써, 컴퓨터 구현가능 프로세스는 2개의 이미지들이 얼마나 유사할 수 있는지를 표시하는 유사성 점수를 결정할 수 있다. 뉴럴 네트워크들은 그들이 이미지들에 대해 계산하는 특징 벡터들이 유사한 이미지들의 경우에 가깝고 (낮은 유클리드 거리) 다른 이미지들의 경우 먼(높은 유클리드 거리) 방식으로 트레이닝된다. 관련 이미지들을 리트리브하기 위하여, 질의 이미지의 특징 벡터는 데이터베이스(414)의 이미지들의 특징 벡터들과 비교된다. 탐색 결과들은 질의 이미지에 대한 그 탐색 결과들의 거리(0과 1 사이의 값)의 오름차순으로 도시될 수 있다. 유사성 점수는 예컨대 0과 1 사이의 값으로부터 변환된 백분율일 수 있다.
이러한 예시적인 구현에서, 프로세스(408)는 비디오에서 캡처된 객체들의 이미지들의 특징 벡터들 또는 시그니처들을 생성하기 위해 러닝 머신을 사용하여 잘라낸 경계 상자들(404)을 프로세싱한다. 러닝 머신은 예컨대 그래픽 프로세싱 유닛(GPU)상에서 실행되는 콘볼루션 뉴럴 네트워크(CNN)와 같은 뉴럴 네트워크이다. CNN은 유사한 이미지와 유사하지 않은 이미지들의 수백만 쌍들을 포함하는 트레이닝 데이터세트들을 사용하여 트레이닝될 수 있다. 예컨대, CNN은 뉴럴 네트워크들을 트레이닝하기 위해 대조 손실 함수(contrastive loss function)를 사용하여 트레이닝되는 사이어미즈 네트워크 아키텍처(Siamese network architecture)이다. 사이어미즈 네트워크의 예는 Bromley, Jane, et al. "Signature verification using a “Siamese” time delay neural network." International Journal of Pattern Recognition and Artificial Intelligence 7.04(1993): 669-688에 설명되어 있으며, 이로써 이의 내용들은 그 전체가 인용에 의해 통합된다.
프로세스(408)는 배치 러닝(batch learning)으로서 알려진 것에서 트레이닝된 모델을 전개하며, 배치 러닝에서는 트레이닝된 모델이 외관 탐색 시스템에서 사용되기 전에 트레이닝 전부가 수행된다. 이러한 실시예에서, 트레이닝된 모델은 하나의 가능한 파라미터 세트를 갖는 콘볼루션 뉴럴 네트워크 러닝 모델이다. 주어진 러닝 모델에 대해 무한개의 가능한 파라미터 세트들이 있다. 목적 함수(AKA 손실 함수)를 최소화하는 파라미터 세트를 찾기 위하여 최적화 방법들(이를테면, 확률적 경사 하강법) 및 수치적 경사 계산 방법들(이를테면, 역전파(Backpropagation))이 사용될 수 있다. 대조 손실 함수는 목적 함수로서 사용된다. 이러한 함수는 현재의 트레이닝된 모델이 덜 정확한 경우 높은 값을 취하고 (유사한 쌍들에 높은 거리를 할당하거나 또는 유사하지 않은 쌍들에 낮은 거리를 할당함) 현재의 트레이닝된 모델이 더 정확한 경우 낮은 값들을 취하도록 (유사한 쌍들에 낮은 거리를 할당하고 유사하지 않은 쌍들에 높은 거리를 할당함) 정의된다. 따라서, 트레이닝 프로세스는 최소화 문제로 감소된다. 가장 정확한 모델을 찾는 프로세스는 트레이닝 프로세스이며, 파라미터 세트를 갖는 결과적인 모델은 트레이닝된 모델이며, 그리고 파라미터 세트는 일단 트레이닝된 모델이 외관 탐색 시스템상에 전개되면 변화되지 않는다.
프로세스(408)에 대한 대안 실시예는 온라인 머신 러닝 알고리즘들로 알려진 것을 사용하여 러닝 머신을 전개하는 것이다. 러닝 머신은 초기 파라미터 세트를 사용하여 프로세스(408)에서 전개될 것이지만, 외관 탐색 시스템은 일부 진리 소스(source of truth) (예컨대, 관심 객체들의 이미지들의 선택시 사용자의 피드백)에 기반하여 모델의 파라미터들을 계속 업데이트할 것이다. 이러한 러닝 머신들은 또한 다른 유형들의 뉴럴 네트워크들 뿐만아니라 콘볼루션 뉴럴 네트워크들을 포함한다.
인간 객체들의 잘라낸 경계 상자들(404)은 특징 벡터들(410)을 생성하기 위하여 프로세스(408)에 의해 프로세싱된다. 특징 벡터들(410)은 인덱싱되며(412) 비디오와 함께 데이터베이스(414)에 저장된다. 특징 벡터들(410)은 또한 인간 객체들의 잘라낸 경계 상자들(404)이 비디오 내에 위치될 수 있는 참조 좌표들과 연관된다. 데이터베이스(414)에의 저장은 유형 스탬프들 및 카메라 식별을 가진 비디오 뿐만 아니라 잘라낸 경계 상자들(404)의 특징 벡터들(410)과 연관된 메타데이터 및 비디오에서 잘라낸 경계 상자들(404)이 위치되는 참조 좌표들을 저장하는 것을 포함한다.
비디오에서 특정 사람의 위치를 찾기 위하여, 관심 사람의 특징 벡터가 생성된다. 관심 사람의 특징 벡터와 유사한 특징 벡터들(416)은 데이터베이스(414)로부터 추출된다. 추출된 특징 데이터들(416)은 임계 유사성 점수와 비교되며(418), 임계치를 초과하는 것들은 사용자에게 제시하기 위해 클라이언트(420)에 제공된다. 클라이언트(420)는 또한 사용자가 추출된 특징 벡터들(416)과 연관된 비디오를 보도록 하는 비디오 재생 모듈(264)을 갖는다.
보다 상세하게는, 트레이닝된 모델은 계산된 특징 벡터들을 비교하는데 사용되는 미리-정의된 거리 함수로 트레이닝된다. 동일한 거리 함수는 트레이닝된 모델이 외관 탐색 시스템에 전개될 때 사용된다. 거리 함수는 특징 벡터들 간의 유클리드 거리이며, 여기서 특징 벡터들은 단위 노름(unit norm)들을 가지도록 정규화되고 이에 따라 모든 특징 벡터들은 단위-노름 하이퍼스피어(unit-norm hypersphere)에 놓인다. 검출된 객체들의 특징 벡터들을 계산하여 데이터베이스에 저장한 후, 유사한 객체들을 탐색하는 것은 정밀 최근접 이웃 탐색(즉, 질의된 특징 벡터(관심 객체의 특징 벡터)로부터 관심 시간 프레임의 모든 다른 벡터들까지의 거리를 철저하게 평가하는 것)을 사용하여 수행된다. 탐색 결과들은 질의된 특징 벡터에 대한 그들의 거리의 내림차순에 의해 랭크되어 리턴(return)된다.
대안 실시예에서, 근사 최근접 이웃 탐색이 사용될 수 있다. 근사 최근접 이웃 탐색은 그것의 “정밀” 상대와 유사하지만, 모든 결과들을 검토하지 않고 가장 가능한 유사한 결과들을 리트리브한다. 이는 속도는 더 빠를 수 있지만, 거짓 음성(false negative)들을 도입할 수 있다. 근사 최근접 이웃의 예는 특징 벡터들의 해싱(hashing)의 인덱싱을 사용할 수 있다. 근사 최근접 이웃 탐색은 탐색 시간 프레임들이 길 때와 같이 특징 벡터들의 수가 큰 경우 더 빠를 수 있다.
보다 더 확실하게, "관심 객체"는 "관심 사람"을 포함하고 "관심 사람"은 "관심 객체"를 포함한다는 것이 이해된다.
이제 도 5를 참조하면, 관심 객체의 기록된 비디오들의 위치를 찾기 위해 클라이언트(420)에서 외관 매칭을 수행하기 위한 외관 탐색(500)의 세부사항들을 도시한 도 4의 예시적인 실시예의 흐름도가 여기에 예시되어 있다. 관심 객체에 대한 외관 탐색을 개시하기 위해, 유사한 특징 벡터들을 데이터베이스(414)에서 탐색하는 데 있어서 관심 객체의 특징 벡터가 필요하다. 외관 탐색(500)에서는 외관 탐색을 개시하는 2가지 예시적인 방법들이 예시되어 있다.
외관 탐색(500)을 개시하는 제1 방법에서, 관심 객체의 이미지가 클라이언트(420)에서 수신되고(502), 클라이언트(420)에서 그 이미지가 프로세스(408)로 전송되어 관심 객체의 특징 벡터를 생성한다(504). 제2 방법에서, 사용자는 관심 객체의 이미지를 데이터베이스(414)에서 탐색하고(514), 비디오가 데이터베이스(414)에의 저장을 위해 프로세싱되었을 때 사전에 생성된 관심 객체의 특징 벡터를 리트리브한다(516).
이후, 제1 방법 또는 제2 방법 중 하나로부터, 관심 객체의 특징 벡터와 비교하여, 임계치를 초과하는, 예컨대 70%일 수 있는 유사성 점수를 갖는 후보 특징 벡터들에 대해 데이터베이스(414)에서 탐색(506)이 이루어진다. 후보 특징 벡터들의 이미지들은 클라이언트(420)에서 수신되고(508), 이후 사용자가 관심 객체이거나 또는 관심 객체일 수 있는 후보 특징 벡터들의 이미지들을 선택(510)하도록 클라이언트(420)에서 제시된다. 클라이언트(420)는 리스트에서 선택된 이미지들을 추적한다. 리스트는 관심 객체인 것으로 사용자에 의해 선택된 이미지들을 가진다. 선택적으로, 선택시(510), 사용자는 또한 사용자에 의해 선택되었으나 나중에 부정확한 것으로 생각되는 이미지들을 리스트로부터 제거할 수 있다.
선택(510)에서 관심 객체의 새로운 이미지(또는 이미지들)의 선택할 때 마다, 데이터베이스(414)에서 새로운 이미지들의 특징 벡터들이 탐색되고(506), 관심 객체의 새로운 후보 이미지들은 사용자가 관심 객체이거나 또는 관심 객체일 수 있는 새로운 이미지들을 다시 선택(510)하도록 클라이언트(420)에서 제시된다. 외관 탐색(500)의 이러한 탐색 루프는 사용자가 관심 객체의 이미지들의 위치를 충분히 찾았음을 판단하고 탐색(512)을 종료할 때까지 계속될 수 있다. 이후, 사용자는 예컨대 리스트의 이미지들과 연관된 비디오들을 보거나 또는 다운로드할 수 있다.
이제 도 6을 참조하면, 선택된 시간 전 또는 후에, 관심 객체의 기록된 비디오들의 위치를 찾기 위해 클라이언트(420)에서 외관 매칭을 수행하기 위한 시간경과 외관 탐색(600)의 세부사항들을 도시하는 도 4의 예시적인 실시예의 흐름도가 여기에서 예시된다. 이러한 유형의 탐색은 예컨대 현재 시간에 보다 가까운 이미지들의 위치를 찾아서 잃어버린 가방의 위치를 찾고 가방을 내버려둔 채 떠났을 수 있는 사람의 위치를 찾기 위하여 시간상 역추적하는데 유용하다.
관심 객체에 대한 외관 탐색을 개시하기 위해, 유사한 특징 벡터들을 데이터베이스(414)에서 탐색하는데 관심 객체의 특징 벡터가 필요하다. 외관 탐색(500)과 유사한 시간경과 외관 탐색(600)에서는 시간경과 외관 탐색을 개시하기 위한 2개의 예시적인 방법들이 예시된다. 외관 탐색(600)을 개시하는 제1 방법에서, 관심 객체의 이미지가 클라이언트(420)에서 수신되며(602), 클라이언트(420)에서 수신된 관심 객체 이미지는 관심 객체의 특징 벡터를 생성(604)하기 위해 프로세스(408)에 전송된다. 제2 방법에서, 사용자는 관심 객체의 이미지를 데이터베이스(414)에서 탐색하며(614), 비디오가 데이터베이스(414)에의 저장 전에 프로세싱되었을 때 사전에 생성된 관심 객체의 특징 벡터를 리트리브한다(616).
제1 방법 또는 제2 방법 중 하나로부터, 시간경과 외관 탐색(600)은 시간상 순방향으로 또는 시간상 역방향으로 탐색하도록 세팅된다(618). 제1 방법의 경우, 탐색 시간은 사용자에 의해 수동으로 세팅될 수 있다. 제2 방법의 경우, 탐색 시작 시간은 이미지가 카메라(108)에 의해 캡처된 시간으로 설정된다. 이러한 예에서, 시간경과 외관 탐색(600)은 예컨대 현재 시간에 보다 가까운 잃어버린 아이의 위치를 찾기 위하여 시간상 순방향으로 탐색하도록 세팅된다. 다른 예에서, 시간경과 외관 탐색(600)은 사용자가 예컨대 가방(관심 객체)을 내버려둔 채 떠났을 수 있는 사람을 결정하기를 원할 때 시간상 역방향으로 탐색하도록 세팅될 수 있다.
이후, 관심 객체의 특징 벡터와 비교하여, 임계치를 초과하는, 예컨대 80%일 수 있는 유사성 점수를 갖는 후보 특징 벡터들에 대해, 탐색 시간으로부터 시간상 순방향으로 데이터베이스(414)에서 탐색(606)이 이루어진다. 후보 특징 벡터들의 이미지들은 수신되고(608), 이후 사용자가 관심 객체이거나 또는 관심 객체일 수 있는 하나의 이미지를 후보 특징 벡터들의 이미지들로부터 선택(610)하도록 클라이언트(420)에서 제시된다. 클라이언트(420)는 리스트에서 선택된 이미지들을 추적한다. 리스트는 관심 객체인 것으로 사용자에게 선택되었던 이미지들을 포함한다. 선택적으로, 선택(610)시 사용자는 또한 사용자에 의해 선택되었으나 나중에 부정확한 것으로 생각되는 이미지들을 리스트로부터 제거할 수 있다.
선택(610)에서 관심 객체의 새로운 이미지를 선택할 때 마다, 새로운 이미지들의 특징 벡터가 탐색 시간으로부터 시간상 순방향으로 데이터베이스(414)에서 탐색된다(606). 탐색 시간은 새로운 이미지가 카메라(108)에 의해 캡처된 시간이다. 관심 객체의 새로운 후보 이미지들은 사용자가 관심 객체이거나 관심 객체일 수 있는 다른 새로운 이미지를 다시 선택(610)하도록 클라이언트(420)에서 제시된다. 시간경과 외관 탐색(600)의 이러한 탐색 루프는 사용자가 관심 객체의 이미지들의 위치를 충분히 찾았음을 판단하고 탐색(612)을 종료할 때까지 계속될 수 있다. 이후, 사용자는 예컨대, 리스트상의 이미지들과 연관된 비디오들을 보거나 또는 다운로드할 수 있다. 이러한 예가 시간상 순방향으로의 탐색에 관한 것이지만, 시간상 역방향이거나 또는 탐색 시간 전에 발생한 히트(hit)들과 관련하여 데이터베이스(414)의 탐색들이 필터링된다는 점을 제외하고, 시간상 역방향으로의 탐색은 시간상 순방향으로의 탐색에 상응하게 유사하다.
이제 도 7을 참조하면, 카메라(108)에 의해 서버(406)로 전송되는 잘라낸 경계 상자(404)를 갖는 객체 프로파일(702)의 예시적인 메타데이터 및 데이터베이스(414)에의 저장을 위해 잘라낸 경계 상자(404)의 특징 벡터(708)에 의해 대체되는 이미지(706)(잘라낸 경계 상자(404))를 갖는 객체 프로파일(704)의 예의 블록도들이 여기에 예시되어 있다. 이미지(706) 대신에 특징 벡터(708)를 갖는 객체 프로파일(704)을 저장함으로써, 일부 저장 공간이 절약되는데, 왜냐하면 이미지(706)의 파일 크기가 특징 벡터(708)의 파일 크기보다 더 크기 때문이다. 결과적으로, 잘라낸 경계 상자들이 종종 상당히 크고 많을 수 있기 때문에, 데이터 저장에 있어서의 상당한 절약이 달성될 수 있다.
객체 프로파일(702) 및 객체 프로파일(704)의 데이터(710)는 예컨대 타임스탬프, 프레임 번호, 장면의 폭과 높이에 의한 픽셀 단위의 해상도, 픽셀 단위의 폭 및 높이에 의한 이러한 프레임과 바이트 단위의 행 폭에 의한 스트라이드의 세그먼트화 마스크, 분류(사람, 차량, 기타), 분류의 백분율에 의한 신뢰도, 정규화된 센서 좌표들에서 폭과 높이에 의한 상자(프로파일링된 객체를 둘러싸는 경계 상자), 픽셀 단위의 이미지 폭 및 높이 뿐만 아니라 이미지 스트라이드(바이트 단위의 행 폭), 이미지의 세그먼트화 마스크, 배향 및 이미지 상자의 x & y 좌표들을 포함하는 콘텐츠를 갖는다. 특징 벡터(708)는 예컨대 48개의 치수들, 즉 48 부동 소수점 수를 갖는 이미지(706)의 2진 표현(0들 및 1들로 구성된 장면의 2진수)이다. 치수들의 수는 특징 벡터들을 생성하는데 사용되고 있는 러닝 머신에 따라 크거나 또는 작을 수 있다. 높은 치수들은 일반적으로 보다 높은 정확도를 가지는데 반해, 필요한 계산 자원들이 또한 매우 클 수 있다.
잘라낸 경계 상자(404) 또는 이미지(706)는 참조 좌표들을 사용하여 기록된 비디오로부터 재추출될 수 있으므로, 잘라낸 경계 상자(404)는 비디오에 추가하여 저장될 필요가 없다. 참조 좌표들은 예컨대 타임스탬프, 프레임 번호 및 상자를 포함할 수 있다. 예로서, 참조 좌표들은 오직 연관된 비디오 파일을 갖는 타임스탬프인데, 여기서 타임스탬프는 원래의 이미지 프레임을 역추적하기에 충분한 정확도를 가지며, 타임스탬프는 원래의 이미지 프레임을 역추적하기에 충분한 정확도를 갖지 않는 경우 원래의 이미지 프레임에 근접한 이미지 프레임은 비디오에서 시간상 근접한 이미지 프레임들이 일반적으로 매우 유사하기 때문에 충분히 양호할 수 있다.
이러한 예시적인 실시예가 특징 벡터를 이미지로 대체하는 객체 프로파일(704)을 갖지만, 다른 실시예들은 종래의 방법들을 사용하여 압축된 이미지를 가질 수 있다.
이제 도 8을 참조하면, 도 4의 예시적인 실시예의 장면(402) 및 잘라낸 경계 상자들(404)이 여기에 예시되어 있다. 장면(402)에는 검출된 3명의 사람들이 도시되어있다. 이들 이미지들(802, 806, 808)은 카메라(108)에 의해 추출되고, 잘라낸 경계 상자들(404)로서 서버(406)로 전송된다. 이미지들(802, 806, 808)은 일정 시간 기간 동안 비디오에서 3명의 사람들의 대표 이미지들이다. 비디오의 3명의 사람들은 움직이며, 그들의 캡처된 이미지들은 그 움직임에 상응하게 주어진 시간 기간 동안 다를 수 있다. 관리 가능한 번호로 이미지를 필터링하기 위해, 대표 이미지 (또는 이미지들)가 추후 프로세싱을 위해 잘라낸 경계 상자들(404)로서 선택된다.
이제 도 9를 참조하면, 하나의 예시적인 실시예에 따른 비디오 분석 모듈(224)의 동작 서브-모듈들의 세트의 블록도가 여기에 예시되어 있다. 비디오 분석 모듈(224)은 다양한 작업들을 수행하기 위한 다수의 모듈을 포함한다. 예컨대, 비디오 분석 모듈(224)은 비디오 캡처 장치(108)의 시야에 나타나는 객체들을 검출하기 위한 객체 검출 모듈(904)을 포함한다. 객체 검출 모듈(904)은 예컨대 모션 검출 및 블롭 검출과 같은 임의의 알려진 객체 검출 방법을 사용할 수 있다. 객체 검출 모듈(904)은 "Methods and Systems for Detecting Objects of Interest in Spatio-Temporal Signals"라는 명칭을 가진 미국 특허 제7,627,171호에 설명된 시스템들을 포함할 수 있고 이 특허에 설명된 검출 방법들을 사용할 수 있으며, 이 특허의 전체 내용들은 인용에 의해 본원에 통합된다.
비디오 분석 모듈(224)은 또한 객체 검출 모듈(904)에 연결되거나 이에 커플링된 객체 추적 모듈(908)을 포함한다. 객체 추적 모듈(908)은 객체 검출 모듈(908)에 의해 검출된 객체의 인스턴스들을 일시적으로 연관시키도록 동작 가능하다. 객체 추적 모듈(908)은 "Object Matching for Tracking, Indexing, and Search"라는 명칭을 가진 미국 특허 제8,224,029호에 설명된 시스템들을 포함할 수 있고 이 특허에 설명된 방법들을 사용할 수 있으며, 이 특허의 전체 내용들은 인용에 의해 본원에 통합된다. 객체 추적 모듈(908)은 자신이 추적하는 시각적 객체들에 대응하는 메타데이터를 생성한다. 메타데이터는 객체의 외관 또는 다른 특징들을 나타내는 시각적 객체의 시그니처들에 대응할 수 있다. 메타데이터는 프로세싱을 위해 서버(406)로 송신된다.
비디오 분석 모듈(224)은 또한, 객체 검출 모듈(904)로부터 검출된 객체들을 분류하고 객체 추적 모듈(908)에 연결하는 객체 분류 모듈(916)을 포함한다. 객체 분류 모듈(916)은 순간적인 객체 분류 모듈(918) 및 시간적인 객체 분류 모듈(912)을 내부적으로 포함할 수 있다. 순간적인 객체 분류 모듈(918)은 객체의 단일 인스턴스에 기반하여 (예컨대, 인간, 차량 또는 동물과 같은) 시각적 객체의 유형을 결정한다. 순간적인 객체 분류 모듈(916)에 대한 입력은 바람직하게는, 전체 이미지 프레임보다는, 시각적 관심 객체가 위치하는 이미지의 (예컨대, 경계 상자내)하위-구역이다. 분류 모듈(916)에 이미지 프레임의 하위-구역을 입력하는 장점은 전체 장면이 분류를 위해 분석될 필요가 없으므로, 프로세싱 능력을 덜 필요로 한다는 것이다. 비디오 분석 모듈(224)은 예컨대 추가 프로세싱을 위해 인간을 제외한 모든 객체 유형들을 필터링할 수 있다.
시간적인 객체 분류 모듈(912)은 또한 일정 시간 기간 동안 객체의 클래스 (이를테면, 예컨대 인간, 차량 또는 동물) 정보를 유지할 수 있다. 시간적인 객체 분류 모듈(912)은 객체의 수명 동안 일정 시간 기간에 걸처 순간적인 객체 분류 모듈(918)에 의해 제공된 객체의 순간적인 클래스 정보를 평균화한다. 다시 말해서, 시간적인 객체 분류 모듈(912)은 다수의 프레임들에서의 객체의 외관에 기반하여 객체 유형을 결정한다. 예컨대, 사람이 걷는 방식에 대한 걸음걸이 분석은 사람을 분류하는데 유용할 수 있거나, 또는 사람의 다리 분석은 자전거 타는 사람을 분류하는 데 유용할 수 있다. 시간적인 객체 분류 모듈(912)은 (예컨대, 궤적이 평활한지 또는 무질서한지 여부 또는 객체가 움직이는지 또는 움직이지 않는지 여부와 같은) 객체의 궤적에 관한 정보, 및 순간적인 객체 분류 모듈(918)에 의해 이루어진, 다수의 프레임들에 걸쳐 평균화된 분류들의 신뢰 정보를 조합할 수 있다. 예컨대, 객체 분류 모듈(916)에 의해 결정된 분류 신뢰 값들은 객체의 궤적의 평활도에 기반하여 조절될 수 있다. 시간적인 객체 분류 모듈(912)은 시각적 객체가 순간적인 객체 분류 모듈(918)에 의해 충분한 횟수로 분류되고 미리 결정된 수의 통계가 수집될 때까지 객체를 미지의 클래스로 할당할 수 있다. 객체를 분류함에 있어서, 시간적인 객체 분류 모듈(912)은 또한 객체가 시야 내에 얼마나 오래 있었는지를 고려할 수 있다. 시간적인 객체 분류 모듈(912)은 앞서 설명된 정보에 기반하여 객체의 클래스에 대한 최종 결정을 내릴 수 있다. 시간적인 객체 분류 모듈(912)은 또한 객체의 클래스를 변경하기 위해 히스테리시스 접근법을 사용할 수 있다. 보다 상세하게는, 임계치는 객체의 분류를 미지의 클래스로부터 확정된 클래스로 전환시키도록 세팅될 수 있으며, 그 임계치는 (예컨대, 인간으로부터 미지 클래스로의 전환과 같은) 반대 전환에 대한 임계치보다 더 클 수 있다. 객체 분류 모듈(916)은 객체의 클래스와 관련된 메타데이터를 생성할 수 있으며, 메타데이터는 데이터베이스(414)에 저장될 수 있다. 시간적인 객체 분류 모듈(912)은 순간적인 객체 분류 모듈(918)에 의해 이루어진 분류들을 집합화할 수 있다.
대안적인 어레인지먼트에서, 객체 분류 모듈(916)은 객체 검출 모듈(904) 다음에 배치되고 객체 추적전에 객체 분류가 발생하도록 객체 추적 모듈(908) 전에 배치된다. 다른 대안적인 어레인지먼트에서, 객체 검출, 추적, 시간적인 분류 및 분류 모듈들(904, 908, 912 및 916)은 앞서 설명된 바와 같이 상호 관련된다. 또 다른 대안적인 실시예에서, 비디오 분석 모듈(224)은 인간들의 이미지들에서 얼굴들을 검출하기 위해 (당업계에 공지된 바와 같은) 얼굴 인식을 사용하고, 따라서 신뢰 레벨들을 제공할 수 있다. 이러한 실시예의 외관 탐색 시스템은 도 8에 도시된 바와 같은 전체 인간 대신에 얼굴들의 잘라낸 경계 상자들 또는 이미지들의 특징 벡터들을 사용하는 것을 포함할 수 있다. 이러한 얼굴 특징 벡터들은 단독으로 또는 전체 객체의 특징 벡터들과 함께 사용될 수 있다. 게다가, 객체들의 부분들의 특징 벡터들은 유사하게 단독으로 또는 전체 객체의 특징 벡터들과 함께 사용될 수 있다. 예컨대, 객체의 일부는 인간의 귀의 이미지일 수 있다. 개인들을 식별하는 귀 인식은 당업계에 공지되어 있다.
비디오의 각각의 이미지 프레임에서, 비디오 분석 모듈(224)은 객체들을 검출하고 각각의 객체의 이미지들을 추출한다. 이들 이미지들로부터 선택된 이미지는 객체의 파이널라이제이션(finalization)으로 지칭된다. 객체들의 파이널라이제이션들은 장면에서 각각의 객체의 수명 동안 그 각각의 객체의 시각적 외관의 최상의 표현을 선택하도록 의도된다. 파이널라이제이션은 외관 탐색 세팅에서 가장 근접한 매치를 리트리브하기 위하여 다른 파이널라이제이션들을 질의하는데 추가로 사용될 수 있는 시그니처/특징 벡터를 추출하기 위하여 사용된다.
이상적으로, 객체의 파이널라이제이션은 객체 수명의 단일 프레임마다 생성될 수 있다. 이 경우에는 정확히 1초의 비디오에도 많은 이미지 프레임들이 있기 때문에 계산 요건들이 너무 높아서 외관 탐색이 현재 실용적이지 않을 수 있다. 하기는 계산 요건들을 감소시키기 위해 일정 시간 기간 동안 객체를 나타내는 객체의 이미지를 객체의 가능한 이미지들로부터 선택하거나 또는 가능한 파이널라이제이션들을 필터링하는 것에 대한 예이다.
객체(인간)가 장면(402)에 진입함에 따라, 그 객체는 객체로서 객체 검출 모듈(904)에 의해 검출된다. 이후, 객체 분류 모듈(916)은 객체가 인간이라는 신뢰 레벨을 사용하여 객체를 인간 또는 사람으로서 분류할 것이다. 객체는 카메라(108)에 의해 캡처된 비디오의 이미지 프레임들 각각을 통해 객체 추적 모듈(908)에 의해 장면(402)에서 추적된다. 객체는 또한, 객체가 추적되고 있기 때문에, 추적 번호에 의해 식별될 수 있다.
각각의 이미지 프레임에서, 객체를 둘러싸는 경계 상자 내의 객체의 이미지가 이미지 프레임으로부터 추출되고, 그 이미지는 잘라낸 경계 상자이다. 객체 분류 모듈(916)은 예컨대 각각의 이미지 프레임에 대해 인간인 것으로서 객체에 대한 신뢰 레벨을 제공한다. 또 다른 예시적인 실시예로서, 객체 분류 모듈(916)이 (예컨대) 인간인 것으로 객체의 분류에 대해 비교적 낮은 신뢰 레벨을 제공하는 경우에, 패딩된 잘라낸 경계 상자는 서버에서의 더 계산 집약적인 객체 검출 및 분류 모듈(예컨대, 프로세스(408))이, 특징 벡터가 생성되기 전에, 객체의 패딩된 잘라낸 경계 상자를 분석하도록 추출된다. 더 계산 집약적인 객체 검출 및 분류 모듈은 다른 중첩하는 또는 가까이에 인접하는 객체로부터 객체를 분석 또는 추출하는 다른 뉴럴 네트워크일 수 있다. 비교적 낮은 신뢰 레벨(예컨대 50 %)은, 특징 벡터가 생성되기 전에, 경계 상자내의 다른 객체들과 같은 이슈들을 분석하기 위해 어떤 잘라낸 경계 상자들 또는 패딩된 잘라낸 경계 상자들이 추가로 프로세싱되어야 하는지를 표시하기 위해 또한 사용될 수 있다. 비디오 분석 모듈(224)은 객체가 장면(402)에서 추적될 때 특정수의 잘라낸 경계 상자들, 예컨대 가장 높은 신뢰 레벨들을 갖는 상위 10개 잘라낸 경계 상자들의 리스트를 유지한다. 객체 추적 모듈(908)이 객체를 놓칠 때 또는 객체가 장면을 떠날 때, 잘라낸 경계 상자(404)는 가장 많은 수의 전경 픽셀들(또는 객체 픽셀들)을 갖는 객체를 보여주는 10개의 잘라낸 경계 상자들의 리스트로부터 선택된다. 잘라낸 경계 상자(404)는 추가 프로세싱을 위해 메타데이터와 함께 서버(406)에 전송된다. 잘라낸 경계 상자(404)는 이러한 추적된 시간 기간 동안 객체의 이미지를 나타낸다. 신뢰 레벨들은 객체가 그림자를 횡단할 때와 같은 객체의 양호한 사진을 나타내지 않을 수 있는 잘라진 경계 상자들을 거절하는데 사용된다. 대안적으로, 하나 보다 많은 잘라낸 경계 상자는 서버(406)에 전송하기 위한 상위 10개 잘라낸 경계 상자들의 리스트로부터 선택될 수 있다. 예컨대, 가장 높은 신뢰 레벨에 의해 선택된 또 다른 잘라낸 경계 상자가 또한 전송될 수 있다.
상위 10개의 잘라낸 경계 상자들의 리스트는 하나의 구현이다. 대안적으로, 리스트는 추가의 예들로서 단지 5개의 잘라낸 경계 상자들 또는 20개의 잘라낸 경계 상자들일 수 있다. 게다가, 잘라낸 경계 상자들의 리스트로부터 잘라낸 경계 상자(404)로서 전송하기 위한 잘라낸 경계 상자의 선택은 추적을 놓친 직후가 아니라 주기적으로 발생할 수 있다. 대안적으로, 리스트로부터의 잘라낸 경계 상자 선택은 가장 많은 수의 객체 픽셀들 대신에 가장 높은 신뢰 레벨에 기반할 수 있다. 대안적으로, 비디오 분석 모듈(224)은 서버(406)(워크스테이션(156)), 프로세싱 기기(148), 클라이언트 디바이스(164) 또는 카메라에서 떨어진 다른 디바이스들에 위치할 수 있다.
위에서 언급된 잘라낸 경계 상자 선택 기준은 단일의 잘라낸 경계 상자에 의해 객체 수명을 나타내는 문제에 대한 가능한 솔루션들이다. 이하는 또 다른 선택 기준들이다.
대안적으로, 객체 분류 모듈(916)의 높이 추정 알고리즘에 의해 제공된 정보를 이용하여 n개의 잘라낸 경계 상자들 중 상위 10개의 필터링이 수행될 수 있다. 높이 추정 모듈은 일정 시간 기간 동안 관찰된 머리(맨 위) 및 발(맨 아래) 위치들에 기반한 호몰로지 매트릭스(homology matrix)를 생성한다. 이로써, 호몰로지를 학습하는 기간은 러닝 페이즈로서 지칭된다. 결과적인 호몰로지는 특정 위치에서 나타나는 진짜 객체의 높이를 추정하는데 추가로 사용되며 그 위치에서 객체의 관찰된 높이와 비교된다. 일단 학습이 완료되면, 높이 추정 모듈에 의해 제공된 정보는 잘라진 경계 상자가 캡처된 위치에서 예상된 객체 높이와 잘라낸 경계 상자들의 높이들을 비교함으로써 상위 n 리스트에서 잘라진 경계 상자들을 필터링하는데 사용될 수 있다. 이러한 필터링 방법은 객체 분류 모듈(916)에 의해 보고된 높은 신뢰도를 갖는 거짓 양성(false positive)들일 수 있는 잘라낸 경계 상자들의 거절 기준인 것으로 의도된다. 이후, 결과적인 필터링된 잘라낸 경계 상자들은 객체에 의해 캡처된 전경 픽셀들의 수에 의해 추가로 랭킹될 수 있다. 이러한 멀티-스테이지 필터링 기준들은 객체의 파이널라이제이션이 높은 분류 신뢰도를 가질 뿐만 아니라 해당 위치에서 예상되는 객체의 치수들을 따르며, 또한 객체 검출 모듈(904)에 의해 보고되는 양호한 수의 전경 픽셀들을 갖도록 보장한다. 멀티-스테이지 필터링 기준들로부터의 결과적인 잘라낸 경계 상자는 특이하게 적용된 앞서 언급된 기준들 중 임의의 기준으로부터 발생하는 잘라낸 경계 상자와 비교하여, 프레임에서 객체의 수명동안 객체의 외관을 양호하게 나타낼 수 있다. 본원에서의 머신 러닝 모듈은 당업계에 공지된 머신 러닝 알고리즘들을 포함한다.
이제 도 10a를 참조하면, 다른 예시적인 실시예에 따른 도 4의 프로세스(408)의 블록도가 여기에 예시되어 있다. 객체들의 이미지들(패딩된 잘라낸 경계 상자들을 포함하는 잘라낸 경계 상자들)(404)은 잘라낸 경계 상자들(404)의 객체들을 검출하고, 분류하며 그리고 그 객체들의 윤곽을 보여주기 위해 제1 뉴럴 네트워크(1010)에 의해 프로세싱되는 프로세스(408)에 의해 수신된다. 제1 뉴럴 네트워크(1010) 및 제2 뉴럴 네트워크(1030)는 예컨대 콘볼루션 뉴럴 네트워크들이다. 제1 뉴럴 네트워크(1010)는 예컨대 클립들(404)의 주어진 잘라낸 경계 상자에 대해 (분류된) 1명, 2명 또는 그 초과의 인간들을 검출하거나 인간들을 전혀 검출하지 않는다. 만일 전혀 검출되지 않으면, 이는 어느 인간 객체들도 검출되지 않았고 (카메라(108)에서의) 초기 분류가 부정확하였으며 특징 벡터(410)가 주어진 잘라낸 경계 상자에 대해 생성되지 않아야 한다는 것을 의미한다(종료(1020)). 만일 1명의 인간 객체가 검출되면, 주어진 잘라낸 경계 상자가 추가로 프로세싱되어야 한다. 주어진 잘라낸 경계 상자가 패딩된 잘라낸 경계 상자인 경우, 주어진 잘라낸 경계 상자의 객체의 이미지는 선택적으로, 다른 비-패딩된 잘라낸 경계 상자들과 마찬가지로 크기가 객체의 경계 상자 내에 있도록 축소된다. 만일 주어진 잘라낸 경계 상자에서 2명 이상(2+)의 인간 객체가 검출되면, 본 실시예에서, 이미지 프레임에서 "객체"의 중심의 좌표들에 가장 가까운 (또는 중심에 가장 가까운) 객체의 이미지는 새로운 잘라낸 경계 상자가 추가 프로세싱을 위해 잘라낸 경계 상자들(404) 중 주어진 잘라낸 경계 상자를 대체하도록 하기 위해 이미지 프레임으로부터 추출된다.
제1 뉴럴 네트워크(1010)는 잘라낸 경계 상자들(404)과 연관시킬 특징 벡터들(410)을 생성하기 위해 제2 뉴럴 네트워크(1030)에 의한 프로세싱을 위해 객체들의 윤곽선 있는 이미지들(잘라낸 경계 상자들)(1040)을 출력한다. 예시적인 제1 뉴럴 네트워크(1010)는 당업계에 공지된 단일 샷 멀티상자 검출기(single shot multibox detector, SSD)이다.
이제 도 10b를 참조하면, 추가의 예시적인 실시예에 따른 도 4의 프로세스(408)의 블록도가 여기에 예시되어 있다. 비교기(1050)가 잘라낸 경계 상자들(404)과 연관된 신뢰 레벨을 결정하는 프로세스(408)에 의해 객체들의 이미지들(패딩된 잘라낸 경계 상자들을 포함하는 잘라낸 경계 상자들)(404)이 수신된다. 카메라(108)로부터의 잘라낸 경계 상자들(404)은 카메라(108)에서의 비디오 분석 모듈에 의해 결정된 바와 같은 연관된 메타데이터(이를테면, 신뢰 레벨)를 갖는다.
주어진 잘라낸 경계 상자의 신뢰 레벨이 상대적으로 낮으면 (예컨대, 50 % 미만), 주어진 잘라낸 경계 상자는 제1 뉴럴 네트워크(1010)로 시작하여 특징벡터(410)로 끝나는 도 10a의 실시예에 따라 프로세싱된다. 주어진 잘라낸 경계 상자의 신뢰 레벨이 비교적 높으면 (예컨대, 50 % 이상), 주어진 잘라낸 경계 상자는 제2 뉴럴 네트워크(1030)에 의해 직접 프로세싱되고 특징 벡터(410)를 생성하기 위해 제1 뉴럴 네트워크(1010)를 바이패싱한다.
카메라(108)에서 패딩된 잘라낸 경계 상자를 추출하는 것을 설명하는 실시예들은 패딩된 잘라낸 경계 상자들로서 객체들의 모든 이미지들을 추출하는 것을 포함하지만, 다른 실시예들은 신뢰 레벨이 연관된 분류된 객체들에 대해 상대적으로 낮을 때 패딩된 잘라낸 경계 상자들만을 추출한다. 제1 뉴럴 네트워크(1010)는 더 나은 정확성을 위해 패딩된 및 비-패딩된 잘라낸 경계 상자들 둘 모두를 프로세싱할 수 있으며, 일부 구현들은 계산 자원들이 이용 가능한 경우에 모든 잘라낸 경계 상자들을 제1 뉴럴 네트워크가 프로세싱하게 할 수 있다는 것에 유의해야 한다. 제1 뉴럴 네트워크(1010)는 모든 패딩된 잘라낸 경계 상자들을 프로세싱할 수 있지만, 제1 뉴럴 네트워크(1010)는 또한 낮은 신뢰 레벨들을 가진 비-패딩된 잘라낸 경계 상자들의 일부분을 프로세싱할 수 있다. 비교기(1050)에 의해 세팅된 임계 신뢰 레벨은 카메라(108)에서 패딩된 잘라낸 경계 상자들을 추출하기 위해 세팅된 임계 신뢰 레벨보다 낮을 수 있다. 일부 실시예들에서, 패딩된 잘라낸 경계 상자들 중 일부는 또한 제1 뉴럴 네트워크(1010)에 의한 프로세싱을 스킵(skip)할 수 있고, 특히 계산 자원들이 서버(406)의 다른 기능들과 관련되는 경우에 직접 제2 뉴럴 네트워크(1030)로 진행할 수 있다. 따라서, 제1 뉴럴 네트워크에 의해 프로세싱된 잘라낸 경계 상자들의 수는 서버(406)에서 이용 가능한 계산 자원들의 양에 따라 세팅될 수 있다.
이제 도 11을 참조하면, 다른 예시적인 실시예에 따른 도 11a 및 도 11b의 프로세스(408)의 흐름도가 여기에 예시되어 있다. 3명의 인간 객체들을 가지는 (비-패딩된 것 인지 또는 패딩된 것인지 간에) 주어진 잘라낸 경계 상자(1110)의 경우, 제1 뉴럴 네트워크(1010)는 3명의 인간 객체들 각각을 검출하고, 3명의 인간 객체들 각각의 이미지들을 잘라낸 경계 상자들(1120, 1130, 1140)로 윤곽을 보여준다. 이후, 잘라낸 경계 상자들(1120, 1130, 1140)의 특징 벡터들은 제2 뉴럴 네트워크(1030)에 의해 생성된다. 자신들과 연관된 특징 벡터들을 가진 잘라낸 경계 상자들(1120, 1130, 1140)은 인덱스(412) 및 데이터베이스(414)에서의 잘라낸 경계 상자들(404) 중 주어진 잘라낸 경계 상자(1110)를 대체한다. 다수의 객체들을 포함하는 이미지를 갖는 대안 실시예에서, 최대로 중첩하는 객체만이 유지되고 (잘라낸 경계 상자(1130)), 다른 잘라낸 경계 상자들은 폐기된다.
따라서, 일 실시예에서, 객체 검출은 2개의 스테이지들에서 수행되며, 즉 (1) 카메라(108)는 덜 정확하지만 전력-효율적 객체 검출을 수행하고, 패딩된 객체의 잘라낸 경계 상자들을 서버(406)에 전송한다. 잘라낸 경계 상자를 패딩하면, 객체 검출을 수행하는 데 있어서 서버-측 알고리즘에 더 많은 픽셀 컨텍스트가 제공되며 서버-측 알고리즘이 카메라-측 알고리즘에 의해 절단된 객체들의 일부분들을 복구할 수 있게 하며; 이후 (2) 서버(406)는 보다 정확하지만 보다 전력-집약적인 알고리즘을 사용하여 패딩된 잘라낸 경계 상자에 대해 객체 검출을 수행한다.
이는 객체의 잘라낸 경계 상자들을 반송하는 네트워크 스트림이 매우 낮은 대역폭을 가질 수 있기 때문에 네트워크 대역폭 사용간에 절충을 제공한다. 높은 프레임 레이트에서 전체 프레임들을 전송하는 것은 (서버(406)측에서 비디오 디코딩을 필요로 하는) 비디오 코덱이 사용되지 않는 한 그러한 환경에서는 비실용적일 것이다.
서버-측 객체 검출이 (비디오 기록을 위해 사용되는 것으로서) 인코딩된 비디오 스트림에 대해 수행된 경우, 객체 검출 알고리즘들을 실행하기 전에 비디오 디코딩을 수행하는 것이 필요할 것이다. 그러나, 다수의 비디오 스트림들을 디코딩하는데 필요한 계산 요건은 너무 높아 실용적이지 않을 수 있다.
따라서, 이러한 실시예에서, 카메라(108)는 "대략적인" 객체 검출을 수행하고 비교적 낮은 대역폭 통신 채널을 사용하여 관련된 패딩된 잘라낸 경계 상자들을 서버에 전송하며, 따라서 카메라(108)는 관심 객체들을 포함할 가능할 가능성이 있는 패딩된 잘라낸 경계 상자들을 생성하기 위하여 덜 컴퓨터-집약적인 알고리즘들을 사용한다.
앞의 설명은 주요 관심 객체들로서 인간 객체들을 갖는 실시예들의 예들을 제공하지만, 객체들로부터 잘라낸 경계 상자들을 추출하고, 추출된 상자들로부터 특정 벡터 표현을 계산하며 그리고 또한 다른 객체들로부터의 특징 벡터들과 비교하는 기본으로 이러한 특징 벡터를 사용하는 기본 방법은 고려 대상의 객체의 클래스에 구속되지 않는다는 것이 인식될 것이다. 표본 객체는 예컨대 가방, 배낭 또는 여행 가방을 포함할 수 있다. 따라서, 차량들, 동물들 및 무생물 객체들의 위치를 찾기 위한 외관 탐색 시스템은 설명된 실시예들의 사상 및 동작 원리들로부터 벗어나지 않고 본원에서 설명되는 특징들 및/또는 기능들을 사용하여 구현될 수 있다.
앞의 설명은 실시예들의 예들을 제공하지만, 설명된 실시예들의 일부 특징들 및/또는 기능들은 설명된 실시예들의 사상 및 동작 원리들로부터 벗어나지 않고 수정될 수 있다는 것이 인식될 것이다. 따라서, 앞서 설명된 것은 비-제한적으로 예시되는 것으로 의도되었으며, 당업자는 본 명세서에 첨부된 청구항들에서 정의되는 본 발명의 범위로부터 벗어나지 않고 다양한 변형들 수정들이 이루어질 수 있다는 것을 이해할 것이다. 게다가, 본원에서 설명된 실시예들 중 임의의 실시예의 임의의 특징은 본원에서 설명된 다른 실시예들 중 임의의 실시예의 임의의 다른 특징과 적절하게 조합될 수 있다.
Claims (72)
- 외관 탐색 시스템으로서,
장면의 비디오를 캡처하도록 구성된 하나 이상의 카메라 - 상기 비디오는 객체의 이미지를 가지며, 상기 하나 이상의 카메라 중 적어도 하나는, 카메라의 제1 러닝 머신(learning machine)을 이용해, 객체의 이미지 내 하나 이상의 객체를 식별하도록 더 구성됨 - ,
하나 이상의 프로세서, 및 메모리 - 컴퓨터 프로그램 코드가 상기 메모리 상에 저장됨 - , 및
카메라로부터 하나 이상의 프로세서로 하나 이상의 식별된 객체를 포함하는 이미지를 전송하도록 구성된 네트워크
를 포함하며, 상기 컴퓨터 프로그램 코드는 하나 이상의 프로세서에 의해 실행될 때 상기 하나 이상의 프로세서로 하여금 방법을 수행하게 하도록 구성되며, 상기 방법은
제2 러닝 머신으로부터의 출력으로서, 상기 하나 이상의 식별된 객체 각각의 하나 이상의 시그니처 및 관심 객체의 시그니처를 생성하는 단계,
상기 하나 이상의 식별된 객체 각각의 하나 이상의 시그니처를 상기 관심 객체의 시그니처에 비교하여, 하나 이상의 식별된 객체 각각에 대한 하나 이상의 유사성 점수(similarity score)를 생성하는 단계, 및
하나 이상의 유사성 점수에 기반하여 하나 이상의 식별된 객체의 하나 이상의 이미지를 디스플레이상에 표시하기 위한 명령을 송신하는 단계를 포함하는, 외관 탐색 시스템. - 제1항에 있어서,
상기 비디오 및 하나 이상의 식별된 객체의 하나 이상의 생성된 시그니처를 저장하기 위한 저장 시스템을 더 포함하는, 외관 탐색 시스템. - 제1항에 있어서,
상기 제1 러닝 머신 및 제2 러닝 머신은 뉴럴 네트워크를 포함하는, 외관 탐색 시스템. - 제1항에 있어서,
상기 제1 러닝 머신 및 제2 러닝 머신은 콘볼루션 뉴럴 네트워크를 포함하는, 외관 탐색 시스템. - 제1항에 있어서,
상기 제1 러닝 머신 및 제2 러닝 머신을 실행하기 위한 하나 이상의 그래픽 프로세싱 유닛을 더 포함하는, 외관 탐색 시스템. - 제1항에 있어서, 제2 러닝 머신은 서버 상에 위치하는 하나 이상의 프로세서에 의해 구현되는, 외관 탐색 시스템.
- 제1항 또는 제2항에 있어서,
상기 하나 이상의 카메라는 비디오 분석을 사용하여 객체의 이미지를 캡처하도록 더 구성되는, 외관 탐색 시스템. - 제1항 또는 제2항에 있어서,
상기 하나 이상의 카메라는 객체의 분류에 의해 객체의 이미지를 필터링하도록 더 구성되는, 외관 탐색 시스템. - 제8항에 있어서,
상기 하나 이상의 카메라는 인간 객체를 포함하는 하나 이상의 이미지를 식별하도록 더 구성되며, 상기 네트워크는 식별된 이미지만을 하나 이상의 프로세서로 전송하도록 더 구성되는, 외관 탐색 시스템. - 제1항 또는 제2항에 있어서,
객체의 이미지는 상기 비디오의 이미지 프레임의 부분을 포함하는, 외관 탐색 시스템. - 제10항에 있어서,
상기 이미지 프레임의 부분은 상기 이미지 프레임의 제1 이미지 부분을 포함하며, 상기 제1 이미지 부분은 적어도 객체를 포함하는, 외관 탐색 시스템. - 제11항에 있어서,
상기 이미지 프레임의 부분은 상기 이미지 프레임의 제2 이미지 부분을 포함하며, 상기 제2 이미지 부분은 상기 제1 이미지 부분보다 더 큰, 외관 탐색 시스템. - 제12항에 있어서,
상기 제1 러닝 머신은 상기 제2 러닝 머신에 대한 상기 제2 이미지 부분 내의 하나 이상의 객체의 윤곽을 보여주도록 구성되는, 외관 탐색 시스템. - 제12항에 있어서,
상기 제1 러닝 머신은 상기 제2 러닝 머신에 대한 상기 제2 이미지 부분 내의 객체의 윤곽을 보여주도록 구성되는, 외관 탐색 시스템. - 제1항 또는 제2항에 있어서,상기 하나 이상의 카메라는 비디오로부터의 객체의 이미지의 추출을 가능하게 하는 참조 좌표를 생성하도록 더 구성되는, 외관 탐색 시스템.
- 제15항에 있어서,
상기 저장 시스템은 상기 참조 좌표를 저장하도록 구성되는, 외관 탐색 시스템. - 제1항 또는 제2항에 있어서,
상기 하나 이상의 카메라는 객체의 하나 이상의 이미지를 획득하기 위해 상기 비디오로부터 일정 시간 기간 동안 캡처된 하나 이상의 이미지를 선택하도록 추가로 구성되는, 외관 탐색 시스템. - 제1항 또는 제2항에 있어서,
상기 객체를 식별하는 것은 이미지 내의 하나 이상의 객체의 윤곽을 보여주는 단계를 포함하는, 외관 탐색 시스템. - 제1항 또는 제2항에 있어서,
상기 식별하는 것은,
적어도 하나의 이미지 내에서 다수의 객체를 식별하는 것; 및
상기 적어도 하나의 이미지를 다수의 분할된 이미지로 분할하는 것을 포함하며, 각각의 분할된 이미지는 하나의 식별된 객체의 적어도 일부분을 포함하는, 외관 탐색 시스템. - 제19항에 있어서, 상기 방법은,
각각의 식별된 객체에 대하여:
신뢰 레벨을 결정하는 단계; 및
상기 신뢰 레벨이 신뢰 요건을 충족하지 않는 경우에, 식별하는 것과 분할하는 것이 상기 제1 러닝 머신에 의해 수행되게 하는 단계; 또는
상기 신뢰 레벨이 상기 신뢰 요건을 충족하는 경우에, 식별하는 것과 분할하는 것이 상기 제2 러닝 머신에 의해 수행되게 하는 단계를 더 포함하는, 외관 탐색 시스템. - 제20항에 있어서,
하나 이상의 카메라는 상기 신뢰 레벨을 결정하기 위한 하나 이상의 비디오 분석 모듈을 더 포함하는, 외관 탐색 시스템. - 하나 이상의 식별된 객체의 이미지를 수신하는 단계 - 하나 이상의 식별된 객체는 장면의 비디오를 캡처한 비디오 카메라에서의 제1 러닝 머신에 의해 식별되었고, 상기 비디오는 객체의 하나 이상의 이미지를 가짐 - ,
제2 러닝 머신으로부터의 출력으로서, 상기 하나 이상의 식별된 객체 각각의 하나 이상의 시그니처, 및 관심 객체의 시그니처를 생성하는 단계,
상기 하나 이상의 식별된 객체 각각의 하나 이상의 시그니처를 관심 객체의 시그니처에 비교함으로써 하나 이상의 식별된 객체 각각에 대한 하나 이상의 유사성 점수를 생성하는 단계, 및
상기 유사성 점수에 기반하여 하나 이상의 식별된 객체의 하나 이상의 이미지를 디스플레이 상에 표시하는 단계를 포함하는, 방법. - 하나 이상의 프로세서에 의해 실행가능하고 상기 하나 이상의 프로세서에 의해 실행될 때 상기 하나 이상의 프로세서로 하여금 방법을 수행하게 하도록 구성된 컴퓨터 프로그램 코드가 저장된 비일시적 컴퓨터-판독가능 저장 매체로서,
상기 방법은,
하나 이상의 식별된 객체의 이미지를 수신하는 단계 - 하나 이상의 식별된 객체는 장면의 비디오를 캡처한 비디오 카메라에서의 제1 러닝 머신에 의해 식별되었고, 상기 비디오는 객체의 하나 이상의 이미지를 가짐 - ,
제2 러닝 머신으로부터의 출력으로서, 상기 하나 이상의 식별된 객체 각각의 하나 이상의 시그니처, 및 관심 객체의 시그니처를 생성하는 단계,
상기 하나 이상의 식별된 객체 각각의 하나 이상의 시그니처를 관심 객체의 시그니처에 비교함으로써 하나 이상의 식별된 객체 각각에 대한 하나 이상의 유사성 점수를 생성하는 단계, 및
상기 유사성 점수에 기반하여 하나 이상의 식별된 객체의 하나 이상의 이미지를 디스플레이 상에 표시하는 단계를 포함하는, 비일시적 컴퓨터-판독가능 저장 매체. - 제23항에 있어서,
상기 식별하는 것은,
적어도 하나의 이미지 내 다수의 객체를 식별하는 것, 및
상기 적어도 하나의 이미지를 다수의 분할된 이미지로 분할하는 것 - 각각의 분할된 이미지는 하나의 식별된 객체의 적어도 일부를 포함함 - 을 포함하며,
상기 방법은,
각각의 식별된 객체에 대하여:
신뢰 레벨을 결정하는 단계; 및
상기 신뢰 레벨이 신뢰 요건을 충족하지 않는 경우에, 식별하는 것과 분할하는 것이 상기 제1 러닝 머신에 의해 수행되게 하는 단계; 또는
상기 신뢰 레벨이 상기 신뢰 요건을 충족하는 경우에, 식별하는 것과 분할하는 것이 상기 제2 러닝 머신에 의해 수행되게 하는 단계를 더 포함하는, 비일시적 컴퓨터-판독가능 저장 매체. - 시스템으로서,
장면의 비디오를 캡처하도록 구성된 하나 이상의 카메라, 및
하나 이상의 프로세서, 및 메모리 - 상기 메모리는 하나 이상의 프로세서에 의해 실행되는 경우 상기 하나 이상의 프로세서로 하여금 방법을 수행하게 하도록 구성된 컴퓨터 프로그램 코드를 저장함 - 를 포함하며;
상기 방법은:
상기 비디오로부터 칩을 추출하는 단계 - 상기 칩은 객체의 이미지를 포함함 - ,
적어도 하나의 칩 각각에 대해:
칩에 대한 신뢰 레벨을 결정하는 단계, 및
상기 신뢰 레벨이 신뢰 요건을 충족하지 않는 경우,
제1 러닝 머신을 이용해, 칩 내 다수의 객체를 식별하는 단계,
제1 러닝 머신을 이용해, 상기 칩을 다수의 분할된 칩으로 분할하는 단계 - 각각의 분할된 칩은 하나의 식별된 객체의 적어도 일부분을 포함함 - , 및
제2 러닝 머신을 이용해 다수의 분할된 칩으로부터 특징 벡터 각각을 생성하는 단계, 또는
상기 신뢰 레벨이 신뢰 요건을 충족하는 경우,
제2 러닝 머신을 이용해 칩으로부터 특징 벡터를 생성하는 단계를 포함하는, 시스템. - 제25항에 있어서,
상기 적어도 하나의 칩은 적어도 하나의 패딩된 칩을 포함하고, 각각의 패딩된 칩은 상기 비디오의 이미지 프레임의 제1 이미지 부분을 포함하는, 시스템. - 제26항에 있어서,
상기 적어도 하나의 칩은 적어도 하나의 비-패딩된(non-padded) 칩을 더 포함하고, 각각의 비-패딩된 칩은 상기 비디오의 이미지 프레임의 제2 이미지 부분을 포함하며, 상기 제2 이미지 부분은 상기 제1 이미지 부분보다 더 작은, 시스템. - 하나 이상의 프로세서에 의해 실행가능하고 상기 하나 이상의 프로세서에 의해 실행될 때 상기 하나 이상의 프로세서로 하여금 방법을 수행하게 하도록 구성된 컴퓨터 프로그램 코드가 저장된 비일시적 컴퓨터-판독가능 저장 매체로서,
상기 방법은,
장면의 비디오로부터 칩을 추출하는 단계 - 상기 칩은 객체의 이미지를 포함함 - ,
적어도 하나의 칩 각각에 대해:
칩에 대한 신뢰 레벨을 결정하는 단계, 및
상기 신뢰 레벨이 신뢰 요건을 충족하지 않는 경우,
제1 러닝 머신을 이용해, 칩 내 다수의 객체를 식별하는 단계,
제1 러닝 머신을 이용해, 상기 칩을 다수의 분할된 칩으로 분할하는 단계 - 각각의 분할된 칩은 하나의 식별된 객체의 적어도 일부분을 포함함 - , 및
제2 러닝 머신을 이용해 다수의 분할된 칩으로부터 특징 벡터 각각을 생성하는 단계, 또는
상기 신뢰 레벨이 신뢰 요건을 충족하는 경우,
제2 러닝 머신을 이용해 칩으로부터 특징 벡터를 생성하는 단계를 포함하는, 비일시적 컴퓨터-판독가능 저장 매체. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662430292P | 2016-12-05 | 2016-12-05 | |
US62/430,292 | 2016-12-05 | ||
US201762527894P | 2017-06-30 | 2017-06-30 | |
US62/527,894 | 2017-06-30 | ||
PCT/CA2017/051469 WO2018102919A1 (en) | 2016-12-05 | 2017-12-05 | System and method for appearance search |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190099443A KR20190099443A (ko) | 2019-08-27 |
KR102560308B1 true KR102560308B1 (ko) | 2023-07-27 |
Family
ID=62243913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020197019166A KR102560308B1 (ko) | 2016-12-05 | 2017-12-05 | 외관 탐색을 위한 시스템 및 방법 |
Country Status (10)
Country | Link |
---|---|
US (2) | US10726312B2 (ko) |
EP (1) | EP3549063A4 (ko) |
JP (3) | JP2020503604A (ko) |
KR (1) | KR102560308B1 (ko) |
CN (2) | CN117095349A (ko) |
AU (2) | AU2017372905B2 (ko) |
CA (2) | CA3000127C (ko) |
IL (1) | IL267115B (ko) |
MX (1) | MX2019006588A (ko) |
WO (1) | WO2018102919A1 (ko) |
Families Citing this family (92)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018033156A1 (zh) * | 2016-08-19 | 2018-02-22 | 北京市商汤科技开发有限公司 | 视频图像的处理方法、装置和电子设备 |
US10318827B2 (en) * | 2016-12-19 | 2019-06-11 | Waymo Llc | Object detection neural networks |
US10229322B2 (en) * | 2017-04-06 | 2019-03-12 | Ants Technology (Hk) Limited | Apparatus, methods and computer products for video analytics |
EP3610410A1 (en) * | 2017-04-14 | 2020-02-19 | Koninklijke Philips N.V. | Person identification systems and methods |
CN107423571B (zh) * | 2017-05-04 | 2018-07-06 | 深圳硅基仿生科技有限公司 | 基于眼底图像的糖尿病视网膜病变识别系统 |
AU2018324122B2 (en) * | 2017-09-01 | 2021-09-09 | Percipient.ai Inc. | Identification of individuals in a digital file using media analysis techniques |
US11284062B2 (en) * | 2017-09-05 | 2022-03-22 | Texas Instruments Incorporated | Automotive display validation |
CN107679466B (zh) * | 2017-09-21 | 2021-06-15 | 百度在线网络技术(北京)有限公司 | 信息输出方法和装置 |
CA3078245A1 (en) | 2017-10-02 | 2019-04-11 | Sensen Networks Group Pty Ltd | System and method for machine learning-driven object detection |
US11475351B2 (en) * | 2017-11-15 | 2022-10-18 | Uatc, Llc | Systems and methods for object detection, tracking, and motion prediction |
US11455801B2 (en) | 2017-12-05 | 2022-09-27 | Avigilon Corporation | Generating signatures within a network that includes a plurality of computing devices of varying processing capabilities |
US10417501B2 (en) * | 2017-12-06 | 2019-09-17 | International Business Machines Corporation | Object recognition in video |
CN108399381B (zh) * | 2018-02-12 | 2020-10-30 | 北京市商汤科技开发有限公司 | 行人再识别方法、装置、电子设备和存储介质 |
US11100350B2 (en) | 2018-02-19 | 2021-08-24 | Avigilon Corporation | Method and system for object classification using visible and invisible light images |
WO2019168258A1 (ko) * | 2018-02-27 | 2019-09-06 | (주)호모미미쿠스 | 동물의 독립 태스크 수행을 지원하는 원격 제어 시스템 및 방법과 동물 웨어러블 다용도 모듈화 플랫폼 시스템 |
US20190279043A1 (en) | 2018-03-06 | 2019-09-12 | Tazi AI Systems, Inc. | Online machine learning system that continuously learns from data and human input |
JP6760318B2 (ja) * | 2018-03-14 | 2020-09-23 | オムロン株式会社 | 顔画像識別システム、識別器生成装置、識別装置、画像識別システム、及び識別システム |
CA3088781A1 (en) | 2018-03-23 | 2019-09-26 | Avigilon Coporation | Method and system for interfacing with a user to facilitate an image search for an object-of-interest |
US20190304102A1 (en) * | 2018-03-30 | 2019-10-03 | Qualcomm Incorporated | Memory efficient blob based object classification in video analytics |
US11321592B2 (en) | 2018-04-25 | 2022-05-03 | Avigilon Corporation | Method and system for tracking an object-of-interest without any required tracking tag theron |
US11157524B2 (en) * | 2018-05-18 | 2021-10-26 | At&T Intellectual Property I, L.P. | Automated learning of anomalies in media streams with external feed labels |
CN112313043B (zh) * | 2018-06-15 | 2024-04-02 | 谷歌有限责任公司 | 自我监督的机器人对象交互 |
WO2019245359A1 (en) | 2018-06-21 | 2019-12-26 | N.V. Nutricia | Method and system for characterizing stool patterns of young infants |
AU2019303730B2 (en) * | 2018-07-17 | 2022-01-20 | Motorola Solutions, Inc. | Hash-based appearance search |
JP7326667B2 (ja) | 2018-07-31 | 2023-08-16 | マーベル アジア ピーティーイー、リミテッド | ストレージエッジにおけるメタデータ生成 |
US11055854B2 (en) * | 2018-08-23 | 2021-07-06 | Seoul National University R&Db Foundation | Method and system for real-time target tracking based on deep learning |
BR102018067756A8 (pt) * | 2018-09-04 | 2022-12-06 | Univ Estadual Campinas Unicamp | Sistema de gerenciamento e método de identificação de animais |
US10643667B2 (en) * | 2018-09-11 | 2020-05-05 | Avigilon Corporation | Bounding box doubling as redaction boundary |
WO2020061236A1 (en) | 2018-09-18 | 2020-03-26 | Focal Systems, Inc. | Product onboarding machine |
US11423648B2 (en) * | 2018-09-27 | 2022-08-23 | Ncr Corporation | Item recognition processing over time |
GB2577689B (en) * | 2018-10-01 | 2023-03-22 | Digital Barriers Services Ltd | Video surveillance and object recognition |
GB2611949B (en) * | 2018-10-01 | 2023-08-09 | Digital Barriers Services Ltd | Video surveillance and object recognition |
US11443165B2 (en) * | 2018-10-18 | 2022-09-13 | Deepnorth Inc. | Foreground attentive feature learning for person re-identification |
US10504027B1 (en) * | 2018-10-26 | 2019-12-10 | StradVision, Inc. | CNN-based learning method, learning device for selecting useful training data and test method, test device using the same |
US11055874B2 (en) * | 2018-10-30 | 2021-07-06 | Ncr Corporation | Image processing for tracking actions of individuals |
TWI686748B (zh) * | 2018-12-07 | 2020-03-01 | 國立交通大學 | 人流分析系統及人流分析方法 |
US20210303853A1 (en) * | 2018-12-18 | 2021-09-30 | Rovi Guides, Inc. | Systems and methods for automated tracking on a handheld device using a remote camera |
EP3797512A1 (en) * | 2018-12-18 | 2021-03-31 | Rovi Guides, Inc. | Systems and methods for automated tracking using a client device |
US10769915B2 (en) * | 2018-12-31 | 2020-09-08 | TCL Research America Inc. | Privacy preserving camera |
JP7136234B2 (ja) * | 2019-01-17 | 2022-09-13 | 日本電気株式会社 | 情報処理装置、制御方法、及びプログラム |
WO2020157885A1 (ja) * | 2019-01-31 | 2020-08-06 | 日本電気株式会社 | データストリーム割り当て方法、システムおよびプログラム |
KR102246408B1 (ko) | 2019-02-14 | 2021-05-18 | 엔에이치엔 주식회사 | 딥러닝 기반 유사상품 제공방법 |
KR102391817B1 (ko) * | 2019-02-18 | 2022-04-29 | 주식회사 아이도트 | 딥 러닝 시스템 |
CN113574866B (zh) | 2019-02-28 | 2024-08-02 | 斯塔特斯公司 | 校准捕捉广播视频的移动相机的系统及方法 |
US10915786B2 (en) * | 2019-02-28 | 2021-02-09 | Sap Se | Object detection and candidate filtering system |
US20200342291A1 (en) * | 2019-04-23 | 2020-10-29 | Apical Limited | Neural network processing |
US11195172B2 (en) * | 2019-07-24 | 2021-12-07 | Capital One Services, Llc | Training a neural network model for recognizing handwritten signatures based on different cursive fonts and transformations |
US11586682B2 (en) | 2019-07-30 | 2023-02-21 | Motorola Solutions, Inc. | Method and system for enhancing a VMS by intelligently employing access control information therein |
US12067462B2 (en) * | 2019-08-15 | 2024-08-20 | Yahoo Assets Llc | Model training framework |
WO2021072645A1 (en) * | 2019-10-15 | 2021-04-22 | Motorola Solutions, Inc. | Video analytics conflict detection and mitigation |
CN112714349B (zh) * | 2019-10-24 | 2023-06-27 | 阿里巴巴集团控股有限公司 | 数据处理方法、商品展示方法和视频播放方法 |
US11238314B2 (en) * | 2019-11-15 | 2022-02-01 | Salesforce.Com, Inc. | Image augmentation and object detection |
US11216666B2 (en) * | 2019-12-11 | 2022-01-04 | Fujifilm Business Innovation Corp. | Understanding normality of an environment using semantic information from images |
FR3104774B1 (fr) * | 2019-12-11 | 2022-01-07 | Bull Sas | Procédé de suivi d’un élément, dispositif électronique et produit programme d’ordinateur associés |
US20210200826A1 (en) * | 2019-12-26 | 2021-07-01 | Motorola Solutions, Inc. | Appearance search for incident response |
US11687778B2 (en) | 2020-01-06 | 2023-06-27 | The Research Foundation For The State University Of New York | Fakecatcher: detection of synthetic portrait videos using biological signals |
CN111353585B (zh) * | 2020-02-25 | 2024-09-06 | 南京羽丰视讯科技有限公司 | 神经网络模型的结构搜索方法和装置 |
KR102462733B1 (ko) * | 2020-03-03 | 2022-11-04 | 한국과학기술연구원 | 샴 네트워크를 활용하는 강인한 다중 객체 검출 장치 및 방법 |
JP7525220B2 (ja) | 2020-04-08 | 2024-07-30 | 日本電気通信システム株式会社 | 推定装置、学習装置、推定方法及びプログラム |
CN111782633B (zh) * | 2020-06-29 | 2024-04-30 | 北京百度网讯科技有限公司 | 数据处理方法、装置及电子设备 |
US11443510B2 (en) | 2020-08-03 | 2022-09-13 | Motorola Solutions, Inc. | Method, system and computer program product that provides virtual assistance in facilitating visual comparison |
CN114079820A (zh) * | 2020-08-19 | 2022-02-22 | 安霸国际有限合伙企业 | 在摄像机设备上借助于神经网络输入的以感兴趣的事件/对象为中心的间隔拍摄视频生成 |
KR102253989B1 (ko) * | 2020-08-19 | 2021-05-20 | 이노뎁 주식회사 | 딥러닝 객체 검출기를 이용한 cctv 영상의 객체 추적 방법 |
KR102375509B1 (ko) * | 2020-09-07 | 2022-03-17 | 주식회사 한글과컴퓨터 | 복수의 포맷 변환 서버들에 문서의 포맷 변환을 위한 작업 할당을 수행하는 문서 파일의 포맷 변환 작업 할당 장치 및 그 동작 방법 |
TWI812888B (zh) * | 2020-10-14 | 2023-08-21 | 財團法人工業技術研究院 | 影像辨識方法及影像辨識系統 |
CN112040325B (zh) * | 2020-11-02 | 2021-01-29 | 成都睿沿科技有限公司 | 一种视频播放方法、装置、电子设备及存储介质 |
CN112330711B (zh) * | 2020-11-26 | 2023-12-05 | 北京奇艺世纪科技有限公司 | 模型生成方法、信息提取方法、装置及电子设备 |
US11509832B2 (en) | 2020-12-01 | 2022-11-22 | Western Digital Technologies, Inc. | Low light surveillance system with dual video streams |
US12039014B2 (en) * | 2020-12-01 | 2024-07-16 | Motorola Solutions, Inc. | Obtaining potential match results for a reference image across a plurality of system sites |
MX2023001144A (es) | 2020-12-15 | 2023-04-14 | Selex Es Inc | Sistemas y metodos para rastrear una firma electronica. |
US11900662B2 (en) | 2020-12-16 | 2024-02-13 | Here Global B.V. | Method, apparatus, and computer program product for training a signature encoding module and a query processing module to identify objects of interest within an image utilizing digital signatures |
US12073615B2 (en) * | 2020-12-16 | 2024-08-27 | Here Global B.V. | Method, apparatus, and computer program product for identifying objects of interest within an image captured by a relocatable image capture device |
US11829192B2 (en) | 2020-12-23 | 2023-11-28 | Here Global B.V. | Method, apparatus, and computer program product for change detection based on digital signatures |
US11587253B2 (en) | 2020-12-23 | 2023-02-21 | Here Global B.V. | Method, apparatus, and computer program product for displaying virtual graphical data based on digital signatures |
US11830103B2 (en) | 2020-12-23 | 2023-11-28 | Here Global B.V. | Method, apparatus, and computer program product for training a signature encoding module and a query processing module using augmented data |
EP4268473A4 (en) * | 2020-12-28 | 2024-05-22 | Samsung Electronics Co., Ltd. | SYSTEM AND METHOD FOR AUTOMATIC VIDEO RECONSTRUCTION WITH DYNAMIC POINT OF INTEREST |
CN112581544B (zh) * | 2020-12-30 | 2022-04-19 | 易思维(杭州)科技有限公司 | 基于参数优化的无公共视场相机标定方法 |
CN112818808B (zh) * | 2021-01-27 | 2024-01-19 | 南京大学 | 一种结合两个向量嵌入空间的高精度步态识别方法 |
US11496671B2 (en) | 2021-02-19 | 2022-11-08 | Western Digital Technologies, Inc. | Surveillance video streams with embedded object data |
EP4295288A4 (en) * | 2021-02-22 | 2024-07-17 | Briefcam Ltd | METHOD AND SYSTEM FOR VISUAL ANALYSIS AND EVALUATION OF CUSTOMER INTERACTION IN A SCENE |
US20220405974A1 (en) * | 2021-06-18 | 2022-12-22 | Acronis International Gmbh | Systems and methods for color-based outfit classification |
CN113255582A (zh) * | 2021-06-21 | 2021-08-13 | 中国银行股份有限公司 | 基于深度神经网络及区块链的笔迹鉴定方法及装置 |
US20230069768A1 (en) * | 2021-08-31 | 2023-03-02 | Micron Technology, Inc. | Distributed Camera System |
WO2023039072A2 (en) * | 2021-09-09 | 2023-03-16 | Selex Es Inc. | Systems and methods for electronic surveillance |
EP4148581B1 (en) * | 2021-09-10 | 2023-08-30 | Axis AB | Verification of updated analytical procedures in monitoring systems |
EP4187505A1 (en) * | 2021-11-26 | 2023-05-31 | Cattle Eye Ltd | A method and system for the identification of animals |
US11991295B2 (en) | 2021-12-07 | 2024-05-21 | Here Global B.V. | Method, apparatus, and computer program product for identifying an object of interest within an image from a digital signature generated by a signature encoding module including a hypernetwork |
US12014447B2 (en) | 2022-02-17 | 2024-06-18 | Revieve Oy | Method and system for dynamic cropping of full body pose images |
US20240062529A1 (en) * | 2022-08-18 | 2024-02-22 | Microsoft Technology Licensing, Llc | Determining media documents embedded in other media documents |
WO2024090390A1 (ja) * | 2022-10-24 | 2024-05-02 | ソフトバンクグループ株式会社 | 情報処理装置、車両、情報処理方法、及び情報処理プログラム |
US20240241908A1 (en) * | 2023-01-12 | 2024-07-18 | Motorola Solutions, Inc. | Searchable video with binary vectors |
KR102703340B1 (ko) * | 2023-04-28 | 2024-09-05 | 소니드로보틱스 주식회사 | 단일 복합 센서를 활용한 경계구역 지능형 자동 탐지 시스템 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140333775A1 (en) * | 2013-05-10 | 2014-11-13 | Robert Bosch Gmbh | System And Method For Object And Event Identification Using Multiple Cameras |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001005967A (ja) * | 1999-06-21 | 2001-01-12 | Matsushita Electric Ind Co Ltd | 画像送信装置及びニューラルネットワーク |
US7627171B2 (en) | 2003-07-03 | 2009-12-01 | Videoiq, Inc. | Methods and systems for detecting objects of interest in spatio-temporal signals |
US7809722B2 (en) * | 2005-05-09 | 2010-10-05 | Like.Com | System and method for enabling search and retrieval from image files based on recognized information |
PL2118864T3 (pl) * | 2007-02-08 | 2015-03-31 | Behavioral Recognition Sys Inc | System rozpoznawania zachowania |
US8170280B2 (en) * | 2007-12-03 | 2012-05-01 | Digital Smiths, Inc. | Integrated systems and methods for video-based object modeling, recognition, and tracking |
GB2471036B (en) | 2008-03-03 | 2012-08-22 | Videoiq Inc | Object matching for tracking, indexing, and search |
JP5353147B2 (ja) * | 2008-09-22 | 2013-11-27 | オムロン株式会社 | 顔照合システム |
US8831090B2 (en) * | 2008-11-18 | 2014-09-09 | Avigilon Corporation | Method, system and apparatus for image capture, analysis and transmission |
JP5455361B2 (ja) * | 2008-12-22 | 2014-03-26 | 富士フイルム株式会社 | オートフォーカスシステム |
US8886206B2 (en) | 2009-05-01 | 2014-11-11 | Digimarc Corporation | Methods and systems for content processing |
US20130128050A1 (en) * | 2011-11-22 | 2013-05-23 | Farzin Aghdasi | Geographic map based control |
EP3633543A1 (en) * | 2013-03-15 | 2020-04-08 | Hologic, Inc. | System and method for reviewing and analyzing cytological specimens |
BR112015027899B1 (pt) * | 2013-05-06 | 2023-04-04 | Hercules Incorporated | Aparelho para teste de produto e meios legíveis por processador não-transitórios |
CN105359186B (zh) * | 2013-06-04 | 2019-06-25 | 赫尔实验室有限公司 | 用于检测场景中的感兴趣的对象的系统、方法和存储介质 |
JP2015002553A (ja) * | 2013-06-18 | 2015-01-05 | キヤノン株式会社 | 情報処理システムおよびその制御方法 |
AU2013242830B2 (en) * | 2013-10-10 | 2016-11-24 | Canon Kabushiki Kaisha | A method for improving tracking in crowded situations using rival compensation |
US9646131B2 (en) * | 2014-06-27 | 2017-05-09 | Oracle International Corporation | Intelligent image processing for enterprise applications |
AU2014240213B2 (en) | 2014-09-30 | 2016-12-08 | Canon Kabushiki Kaisha | System and Method for object re-identification |
-
2017
- 2017-12-05 EP EP17877733.0A patent/EP3549063A4/en active Pending
- 2017-12-05 CN CN202310980005.4A patent/CN117095349A/zh active Pending
- 2017-12-05 WO PCT/CA2017/051469 patent/WO2018102919A1/en active Application Filing
- 2017-12-05 AU AU2017372905A patent/AU2017372905B2/en active Active
- 2017-12-05 US US15/832,654 patent/US10726312B2/en active Active
- 2017-12-05 CN CN201780085044.0A patent/CN110235138B/zh active Active
- 2017-12-05 JP JP2019529970A patent/JP2020503604A/ja not_active Withdrawn
- 2017-12-05 CA CA3000127A patent/CA3000127C/en active Active
- 2017-12-05 MX MX2019006588A patent/MX2019006588A/es unknown
- 2017-12-05 KR KR1020197019166A patent/KR102560308B1/ko active IP Right Grant
- 2017-12-05 CA CA3077830A patent/CA3077830C/en active Active
-
2019
- 2019-06-05 IL IL267115A patent/IL267115B/en unknown
-
2020
- 2020-06-22 US US16/908,026 patent/US11113587B2/en active Active
-
2021
- 2021-10-20 JP JP2021171909A patent/JP7317919B2/ja active Active
-
2022
- 2022-10-13 AU AU2022252799A patent/AU2022252799B2/en active Active
-
2023
- 2023-07-19 JP JP2023117547A patent/JP2023145558A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140333775A1 (en) * | 2013-05-10 | 2014-11-13 | Robert Bosch Gmbh | System And Method For Object And Event Identification Using Multiple Cameras |
Non-Patent Citations (1)
Title |
---|
Mattis Paulin 외 5명, Local Convolutional Features with Unsupervised Training for Image Retrieval, 2015 IEEE International Conference on Computer Vision(2016.02.18.)* |
Also Published As
Publication number | Publication date |
---|---|
IL267115B (en) | 2022-04-01 |
CA3077830A1 (en) | 2018-06-05 |
JP2020503604A (ja) | 2020-01-30 |
CA3077830C (en) | 2023-03-07 |
US10726312B2 (en) | 2020-07-28 |
AU2017372905B2 (en) | 2022-08-11 |
CA3000127A1 (en) | 2018-06-05 |
CN110235138B (zh) | 2023-09-05 |
MX2019006588A (es) | 2019-10-09 |
CN110235138A (zh) | 2019-09-13 |
IL267115A (en) | 2019-08-29 |
AU2022252799A1 (en) | 2022-11-03 |
EP3549063A1 (en) | 2019-10-09 |
AU2022252799B2 (en) | 2023-09-28 |
JP2023145558A (ja) | 2023-10-11 |
WO2018102919A1 (en) | 2018-06-14 |
KR20190099443A (ko) | 2019-08-27 |
CN117095349A (zh) | 2023-11-21 |
US20180157939A1 (en) | 2018-06-07 |
CA3000127C (en) | 2020-06-02 |
EP3549063A4 (en) | 2020-06-24 |
JP2022023887A (ja) | 2022-02-08 |
US20200320356A1 (en) | 2020-10-08 |
US11113587B2 (en) | 2021-09-07 |
JP7317919B2 (ja) | 2023-07-31 |
AU2017372905A1 (en) | 2019-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102560308B1 (ko) | 외관 탐색을 위한 시스템 및 방법 | |
US10628683B2 (en) | System and method for CNN layer sharing | |
US10846554B2 (en) | Hash-based appearance search | |
US11023707B2 (en) | System and method for selecting a part of a video image for a face detection operation | |
TWI759286B (zh) | 用於藉由機器學習訓練物件分類器之系統及方法 | |
CA3077517A1 (en) | Method and system for classifying an object-of-interest using an artificial neural network | |
AU2019343959B2 (en) | Region proposal with tracker feedback | |
CA3011713A1 (en) | Hash-based appearance search | |
AU2019303730B2 (en) | Hash-based appearance search | |
e Souza et al. | Survey on visual rhythms: A spatio-temporal representation for video sequences | |
JP2015158745A (ja) | 行動識別器生成装置、行動認識装置及びプログラム | |
Choi et al. | Intelligent Pedestrian-Search System Based on Color Queries |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |