KR20220129905A - 대상 객체를 추적하는 방법과 장치 및 전자 장치 - Google Patents

대상 객체를 추적하는 방법과 장치 및 전자 장치 Download PDF

Info

Publication number
KR20220129905A
KR20220129905A KR1020210034804A KR20210034804A KR20220129905A KR 20220129905 A KR20220129905 A KR 20220129905A KR 1020210034804 A KR1020210034804 A KR 1020210034804A KR 20210034804 A KR20210034804 A KR 20210034804A KR 20220129905 A KR20220129905 A KR 20220129905A
Authority
KR
South Korea
Prior art keywords
target object
neural network
feature
frame
network model
Prior art date
Application number
KR1020210034804A
Other languages
English (en)
Other versions
KR102637342B1 (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 KR1020210034804A priority Critical patent/KR102637342B1/ko
Priority to US17/385,455 priority patent/US11790541B2/en
Publication of KR20220129905A publication Critical patent/KR20220129905A/ko
Application granted granted Critical
Publication of KR102637342B1 publication Critical patent/KR102637342B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/248Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S5/00Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
    • G01S5/16Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using electromagnetic waves other than radio waves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation 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
    • G06V10/751Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/63Control of cameras or camera modules by using electronic viewfinders
    • H04N23/631Graphical user interfaces [GUI] specially adapted for controlling image capture or setting capture parameters
    • H04N23/632Graphical user interfaces [GUI] specially adapted for controlling image capture or setting capture parameters for displaying or modifying preview images prior to image capturing, e.g. variety of image resolutions or capturing parameters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20092Interactive image processing based on input by user
    • G06T2207/20104Interactive definition of region of interest [ROI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20112Image segmentation details
    • G06T2207/20132Image cropping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation 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
    • G06V10/759Region-based matching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Biophysics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Electromagnetism (AREA)
  • Image Analysis (AREA)
  • Variable-Direction Aerials And Aerial Arrays (AREA)

Abstract

대상 객체를 추적하는 방법과 장치 및 전자 장치가 개시된다. 대상 객체를 추적하는 방법은 입력 영상의 프레임들로부터 특징을 추출하고, 프레임들 중 이전 프레임의 특징에 포함된 대상 객체의 특성 값을 기초로 특성 값의 범위에 따라 미리 구비된 복수의 신경망 모델들 중 어느 하나의 신경망 모델을 선택하며, 선택된 신경망 모델을 기초로 현재 프레임에 포함된 대상 객체의 바운딩 박스를 생성할 수 있다.

Description

대상 객체를 추적하는 방법과 장치 및 전자 장치{METHOD AND APPARATUS OF TRACKING TARGET OBJECTS AND ELECTRIC DEVICE}
아래 실시예들은 대상 객체를 추적하는 방법과 장치 및 전자 장치에 관한 것이다.
예를 들어, 입력 영상에 포함된 객체들의 모양과 비율이 다양할수록 이를 정확히 추적하기 위한 신경망의 처리 부하가 커질 수 있다. 다양한 형태의 객체들을 인식 및/또는 검출하기 위해 심층 신경망의 깊이(depth)가 깊은 거대한 단일 네트워크를 사용하거나, 여러 개의 추적기들을 사용할 수 있다. 거대한 단일 네트워크 또는 여러 개의 추적기들을 사용할 경우, 메모리 사용량의 증가 및/또는 MAC(multiplier accumulator) 연산의 증가로 인해 모바일 기기와 같이 메모리 및 프로세서에 제약이 있는 장치에서의 실시간성을 보장하기 어렵다.
일 실시예에 따른 대상 객체를 추적하는 방법은 입력 영상의 프레임들로부터 특징을 추출하는 단계; 상기 프레임들 중 이전 프레임의 상기 특징에 포함된 대상 객체의 특성 값(feature value)을 기초로, 상기 특성 값의 범위에 따라 미리 구비된 복수의 신경망 모델들 중 어느 하나의 신경망 모델을 선택하는 단계; 및 상기 선택된 신경망 모델을 기초로, 현재 프레임에 포함된 상기 대상 객체의 바운딩 박스(bounding box)를 생성하는 단계를 포함한다.
상기 특징을 추출하는 단계는 해당 프레임이 상기 프레임들 중 상기 대상 객체를 포함하는 첫 번째 프레임인 경우, 상기 첫 번째 프레임에서 사용자의 선택에 기초하여 크롭핑된 영역의 특징을 추출하는 단계를 포함할 수 있다.
상기 특징을 추출하는 단계는 해당 프레임이 상기 프레임들 중 상기 대상 객체를 포함하는 첫 번째 프레임이 아닌 경우, 상기 이전 프레임에서 생성된 바운딩 박스에 기초하여 크롭핑된 영역의 특징을 추출하는 단계를 포함할 수 있다.
상기 대상 객체의 특성 값은 상기 대상 객체의 크기, 상기 대상 객체의 종횡 비, 상기 대상 객체의 종류, 상기 대상 객체의 움직임 변화 정도, 상기 대상 객체의 움직임 종류, 상기 대상 객체의 색상, 상기 대상 객체의 강도(rigid), 및 조도 중 적어도 하나에 대응할 수 있다.
상기 어느 하나의 신경망 모델을 선택하는 단계는 상기 대상 객체의 특성 값을 가공하는 단계; 및 상기 가공된 특성 값을 기초로, 상기 가공된 특성 값의 범위에 따라 미리 구비된 복수의 신경망 모델들 중 어느 하나의 신경망 모델을 선택하는 단계를 포함할 수 있다.
상기 복수의 신경망 모델들은 상기 특성 값의 제1 범위에 대응하는 대상 객체를 제안하도록 트레이닝된 제1 신경망 모델; 상기 특성 값의 제2 범위에 대응하는 대상 객체를 제안하도록 트레이닝된 제2 신경망 모델; 및 상기 특성 값의 제3 범위에 대응하는 대상 객체를 제안하도록 트레이닝된 제3 신경망 모델을 포함할 수 있다.
상기 제1 범위, 상기 제2 범위, 및 상기 제3 범위는 상이할 수 있다.
상기 선택된 신경망 모델은 상기 대상 객체의 특성 값들 중 일부 범위에 해당하는 특성 값을 갖는 대상 객체를 처리할 수 있다.
상기 대상 객체의 바운딩 박스를 생성하는 단계는 상기 선택된 신경망 모델에 의해 상기 현재 프레임을 크롭핑(cropping)하는 단계; 상기 선택된 신경망 모델에 의해 상기 이전 프레임으로부터 추출한 특징에 기초한 템플릿 특징(template feature)과 상기 현재 프레임을 크롭핑한 영상으로부터 추출한 특징 간의 유사도(similarity)를 측정하는 단계; 및 상기 유사도를 기초로 상기 현재 프레임을 크롭핑한 영상으로부터 추출한 특징에서 상기 템플릿 특징에 매칭되는 영역을 나타내는 상기 대상 객체의 바운딩 박스를 결정하는 단계를 포함할 수 있다.
상기 대상 객체를 추적하는 방법은 상기 대상 객체에 대한 사용자의 선택을 입력받는 단계를 더 포함할 수 있다.
일 실시예에 따르면, 대상 객체를 추적하는 장치는 입력 영상을 획득하는 통신 인터페이스; 및 상기 입력 영상의 프레임들로부터 특징을 추출하고, 상기 프레임들 중 이전 프레임의 상기 특징에 포함된 대상 객체의 특성 값을 기초로, 상기 특성 값의 범위에 따라 미리 구비된 복수의 신경망 모델들 중 어느 하나의 신경망 모델을 선택하며, 상기 선택된 신경망 모델을 기초로, 현재 프레임에 포함된 상기 대상 객체의 바운딩 박스를 생성하는 프로세서를 포함한다.
상기 프로세서는 해당 프레임이 상기 프레임들 중 상기 대상 객체를 포함하는 첫 번째 프레임인 경우, 상기 첫 번째 프레임에서 사용자의 선택에 기초하여 크롭핑된 영역의 특징을 추출할 수 있다.
상기 프로세서는 해당 프레임이 상기 프레임들 중 상기 대상 객체를 포함하는 첫 번째 프레임이 아닌 경우, 상기 이전 프레임에서 생성된 바운딩 박스에 기초하여 크롭핑된 영역의 특징을 추출할 수 있다.
상기 프로세서는 상기 대상 객체의 특성 값을 가공하고, 상기 가공된 특성 값을 기초로, 상기 가공된 특성 값의 범위에 따라 미리 구비된 복수의 신경망 모델들 중 어느 하나의 신경망 모델을 선택할 수 있다.
상기 복수의 신경망 모델들은 상기 특성 값의 제1 범위에 대응하는 대상 객체를 제안하도록 트레이닝된 제1 신경망 모델;상기 특성 값의 제2 범위에 대응하는 대상 객체를 제안하도록 트레이닝된 제2 신경망 모델; 및 상기 특성 값의 제3 범위에 대응하는 대상 객체를 제안하도록 트레이닝된 제3 신경망 모델을 포함하고, 상기 제1 범위, 상기 제2 범위, 및 상기 제3 범위는 상이할 수 있다.
상기 프로세서는 상기 선택된 신경망 모델에 의해 상기 현재 프레임을 크롭핑하고, 상기 선택된 신경망 모델에 의해 상기 이전 프레임으로부터 추출한 특징에 기초한 템플릿 특징과 상기 현재 프레임을 크롭핑한 영상으로부터 추출한 특징 간의 유사도를 측정하며, 상기 유사도를 기초로 상기 현재 프레임을 크롭핑한 영상으로부터 추출한 특징에서 상기 템플릿 특징에 매칭되는 영역을 나타내는 상기 대상 객체의 바운딩 박스를 결정할 수 있다.
일 실시예에 따르면, 전자 장치는 감지된 시각 정보에 기초하여 입력 영상을 생성하는 카메라; 상기 입력 영상에 포함된 대상 객체에 대한 사용자의 선택을 입력받는 사용자 인터페이스; 및 상기 입력 영상의 프레임들로부터 특징을 추출하고, 상기 프레임들 중 이전 프레임의 상기 특징에 포함된 상기 대상 객체의 특성 값을 기초로, 상기 특성 값의 범위에 따라 미리 구비된 복수의 신경망 모델들 중 어느 하나의 신경망 모델을 선택하며, 상기 선택된 신경망 모델을 기초로 생성된 현재 프레임에 포함된 상기 대상 객체의 바운딩 박스에 의해 상기 대상 객체를 추적하는 프로세서를 포함한다.
상기 프로세서는 해당 프레임이 상기 프레임들 중 상기 대상 객체를 포함하는 첫 번째 프레임인 경우, 상기 첫 번째 프레임에서 사용자의 선택에 기초하여 크롭핑된 영역의 특징을 추출하고, 해당 프레임이 상기 프레임들 중 상기 대상 객체를 포함하는 첫 번째 프레임이 아닌 경우, 상기 이전 프레임에서 생성된 바운딩 박스에 기초하여 크롭핑된 영역의 특징을 추출할 수 있다.
상기 프로세서는 상기 선택된 신경망 모델에 의해 상기 현재 프레임을 크롭핑하고, 상기 선택된 신경망 모델에 의해 상기 이전 프레임으로부터 추출한 특징에 기초한 템플릿 특징과 상기 현재 프레임을 크롭핑한 영상으로부터 추출한 특징 간의 유사도를 측정하며, 상기 유사도를 기초로 상기 현재 프레임을 크롭핑한 영상으로부터 추출한 특징에서 상기 템플릿 특징에 매칭되는 영역을 나타내는 상기 대상 객체의 바운딩 박스를 결정할 수 있다.
도 1은 일 실시예에 따른 객체 추적 장치의 구성 및 동작을 설명하기 위한 도면.
도 2는 일 실시예에 따라 대상 객체를 추적하는 워크 플로우(workflow)를 도시한 도면.
도 3은 일 실시예에 따른 객체 추적 장치의 구성을 도시한 도면.
도 4는 일 실시예에 따른 대상 객체를 추적하는 방법을 나타낸 흐름도.
도 5는 일 실시예에 따른 복수의 신경망 모델들에 대응하는 종횡 비가 상이한 대상 객체들을 도시한 도면.
도 6은 다른 실시예에 따른 대상 객체를 추적하는 방법을 나타낸 흐름도.
도 7은 일 실시예에 따라 대상 객체를 추적하는 복수의 신경망 모델들을 포함하는 가변 네트워크를 도시한 도면.
도 8은 일 실시예에 따른 복수의 신경망 모델들이 서로 다른 특성 값을 갖는 대상 객체들을 추적하는 과정을 설명하기 위한 도면.
도 9는 일 실시예에 따른 전자 장치의 블록도.
실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 구현될 수 있다. 따라서, 실제 구현되는 형태는 개시된 특정 실시예로만 한정되는 것이 아니며, 본 명세서의 범위는 실시예들로 설명한 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 일 실시예에 따른 객체 추적 장치의 구성 및 동작을 설명하기 위한 도면이다. 도 1을 참조하면, 객체를 추적하는 장치(이하, '객체 추적 장치')(100)는 통신 인터페이스(110), 프로세서(130) 및 메모리(150)를 포함할 수 있다.
객체 추적 장치(100)는 입력 영상(101)에서 대상 객체를 추적하고, 대상 객체에 관한 추적 결과(103)에 해당하는 바운딩 박스(bounding box)를 출력할 수 있다. '대상 객체(target object)'는 입력 영상(101)의 프레임들에 포함된 객체들 중 추적하고자 하는 대상이 되는 객체에 해당할 수 있다. 대상 객체는 예를 들어, 입력 영상(101)에 대한 사용자의 선택을 통해 결정될 수 있으며, 반드시 이에 한정되지는 않는다.
통신 인터페이스(110)는 입력 영상(101)을 획득한다. 입력 영상(101)은 복수의 영상 프레임들을 포함할 수 있다. 입력 영상(101)은 예를 들어, 이전 프레임 및 이전 프레임에 후속하는 현재 프레임을 포함할 수 있다. 입력 영상(101)은 시계열적으로 연속하는 다수의 프레임들을 포함할 수 있다.
프로세서(130)는 입력 영상(101)의 프레임들로부터 특징을 추출한다. 예를 들어, 해당 프레임이 프레임들 중 대상 객체를 포함하는 첫 번째 프레임인 경우, 프로세서(130)는 첫 번째 프레임에서 사용자의 선택에 기초하여 크롭핑된 영역의 특징을 추출할 수 있다. 해당 프레임이 프레임들 중 대상 객체를 포함하는 첫 번째 프레임이 아닌 경우, 프로세서(130)는 이전 프레임에서 생성된 바운딩 박스에 기초하여 크롭핑된 영역의 특징을 추출할 수 있다. 여기서, '특징(feature)'은 예를 들어, 프레임들에 포함된 객체의 크기, 객체의 종횡 비, 객체의 종류, 객체의 움직임 변화 정도, 객체의 움직임 종류, 객체의 색상, 객체의 강도(rigid), 및 프레임의 조도 등을 포함할 수 있다. 이 밖에도, 특징은 프레임들에 포함된 객체의 크기 변화, 형태 변화, 위치 변화와 같은 객체의 동적 특징(dynamic characteristic)을 더 포함할 수 있다. 크기 변화는 초기 크기 대비 크기의 변화 정도로 나타낼 수 있고, 형태 변화는 초기 형태 대비 크기의 변화 정도로 나타낼 수 있다. 위치 변화는 초기 위치 대비 위치의 변화 정도로 나타낼 수 있다. 위치 변화는 다른 말로 움직임이라 지칭될 수 있고, 이동 속도 및/또는 이동 방향을 포함할 수 있다.
특징은 예를 들어, 특징 맵(feature map)의 형태를 가질 수도 있고, 또는 특징 벡터의 형태를 가질 수도 있으며, 반드시 이에 한정되지는 않는다.
프로세서(130)는 입력 영상(101)의 이전 프레임에서 생성된 바운딩 박스에 의한 이전 참조 위치와 현재 프레임 내의 객체의 현재 참조 위치 간의 차이에 기초하여 객체의 움직임을 예측할 수 있다.
객체 추적 장치(100)의 추적 결과(103)에 해당하는 바운딩 박스를 통해 입력 영상(101)에서 대상 객체에 대응하는 영역이 특정될 수 있다.
프로세서(130)는 프레임들 중 이전 프레임의 특징에 포함된 대상 객체의 특성 값(feature value)을 기초로, 특성 값의 범위에 따라 미리 구비된 복수의 신경망 모델들 중 어느 하나의 신경망 모델을 선택한다.
대상 객체의 특성 값은 예를 들어, 대상 객체의 크기, 대상 객체의 종횡 비, 대상 객체의 종류, 대상 객체의 움직임 변화 정도, 대상 객체의 움직임 종류, 대상 객체의 색상, 대상 객체의 강도(rigid), 및 조도 중 적어도 하나에 대응하는 값일 수 있다. 대상 객체의 움직임 변화 정도는 대상 객체가 동적으로 움직이는 정도에 해당할 수 있다. 예를 들어, 움직임이 큰 경우, 대상 객체의 움직임 변화 정도는 높은 특성 값을 가질 수 있다. 움직임이 작은 경우, 대상 객체의 움직임 변화 정도는 낮은 특성 값을 가질 수 있다. 대상 객체의 움직임 종류는 대상 객체가 하는 움직임 또는 동작을 분류한 것에 해당할 수 있다. 예를 들어, 입력 영상(101)이 사람이 자전거를 타는 동영상이거나, 또는 사람이 춤을 추는 동영상인 경우, 입력 영상(101)의 움직임 종류는 자전거 타는 동작 또는 춤추는 동작 등과 같이 분류될 수 있다. 이때, 분류되는 움직임 또는 동작에 대응하는 특성 값은 미리 정해져 있을 수 있다. 대상 객체의 색상은 예를 들어, 대상 객체의 색상, 명도, 및 채도 중 적어도 하나 또는 이들의 조합에 대응하는 특성 값을 가질 수 있다. 예를 들어, 대상 객체는 색상이 탁하고 어두울수록 낮은 특성 값을 가지고, 색상이 맑고 밝을수록 높은 특성 값을 가질 수 있다. 대상 객체의 강도는 대상 객체가 물 또는 기름과 같이 형태가 변형되는 유체인지, 대상 객체가 고무공과 같은 형체가 외력에 의해 변형가능한 탄성체인지, 또는 대상 객체가 철사, 또는 돌과 같이 형체가 변형되지 않는 강체인지에 따라 달라질 수 있다. 예를 들어, 대상 객체가 유체에 가까울수록 대상 객체는 특성(강도)에 대한 낮은 특성 값을 가지고, 대상 객체가 강체에 가까울수록 대상 객체는 강도에 대한 높은 특성 값을 가질 수 있다.
일 실시예에서 특성 값의 범위에 따라 미리 구비된 복수의 신경망 모델들은 예를 들어, 특성 값의 제1 범위에 대응하는 대상 객체를 제안하도록 트레이닝된 제1 신경망 모델, 특성 값의 제2 범위에 대응하는 대상 객체를 제안하도록 트레이닝된 제2 신경망 모델, 및 특성 값의 제3 범위에 대응하는 대상 객체를 제안하도록 트레이닝된 제3 신경망 모델을 포함할 수 있으며, 반드시 이에 한정되지는 않는다. 특성 값의 제1 범위는 제2 범위보다 크고, 제2 범위는 제3 범위보다 클 수 있으며, 이와 반대로의 구성도 가능하다. 제1 범위, 제2 범위, 및 제3 범위는 상이할 수 있다. 예를 들어, 특성이 대상 객체의 종횡 비라고 하자. 이 경우, 제1 신경망 모델은 입력 영상(101)에서 종횡 비의 값이 5보다 큰 대상 객체를 제안하도록 트레이닝된 것일 수 있다. 제2 신경망 모델은 입력 영상(101)에서 종횡 비의 값이 2.5보다 크고, 5보다 작거나 같은 대상 객체를 제안하도록 트레이닝된 것일 수 있다. 또한, 제3 신경망 모델은 입력 영상(101)에서 종횡 비가 0.1보다 크고 2.5보다 작거나 같은 대상 객체를 제안하도록 트레이닝된 것일 수 있다.
이때, 복수의 신경망 모델들은 하나의 특성에 대한 서로 다른 특성 값에 따른 것이라는 점에서 적어도 일부의 가중치를 서로 공유할 수도 있다. 아래에서 보다 구체적으로 설명하겠지만, 복수의 신경망 모델들은 특성 값의 범위에 따라 어느 하나의 신경망 모델을 가변적으로 선택 가능한 구조로 구성될 수 있다. 복수의 신경망 모델들은 메모리(150)에 저장될 수 있다.
복수의 신경망 모델들 각각은 예를 들어, 영역 제안 신경망(Region Proposal Network; RPN)를 포함할 수 있다. 영역 제안 신경망(RPN)은 입력 영상(101)으로부터 사각형 박스(box) 형태의 객체 제안(Object Proposal)과 객체도 점수(Objectness Score)를 출력할 수 있다. 복수의 신경망 모델들은 영역 제안 신경망(RPN)을 통해 객체가 있을 만한 영역에 대한 제안 영역(proposal region)(예를 들어, 사각형 박스 영역)을 구하고, 제안 영역을 ROI 풀링 레이어(pooling layer)로 전송할 수 있다. 영역 제안 신경망(RPN)의 출력은 각 제안 영역에 대해 객체도 점수가 포함된 사각형 박스들의 집합이 될 수 있다. 신경망 모델은 풀리-컨볼루셔널 신경망(fully-convolutional network) 형태일 수 있다.
영역 제안 신경망(RPN)은 컨볼루션 네트워크 부분의 최종 특징 맵(feature map)을 입력으로 수신한 후, n x n 크기의 슬라이딩 윈도우 컨볼루션(sliding window convolution) 연산을 수행하여 예를 들어, 256 차원 벡터 또는 512 차원의 벡터를 생성할 수 있다. 영역 제안 신경망(RPN)은 256 차원 벡터 또는 512 차원의 벡터를 다시 객체인지 아닌지를 나타내는 박스 분류 레이어(box classification layer)와 후보 영역의 좌표를 생성하는 박스 리그레션 레이어(box regression layer)에 연결할 수 있다. 박스 분류 레이어는 예를 들어, k개의 객체 후보에 대하여 대상 객체인지 혹은 대상 객체가 아닌지를 나타내는 객체도 점수를 구하기 때문에 2k개의 객체도 점수를 산출할 수 있다. 박스 리그레션 레이어는 각각의 객체에 대하여 4개의 좌표(x, y, w, h) 값을 출력하기 때문에 4k 개의 좌표들을 출력할 수 있다. 4개의 좌표(x, y, w, h)는 바운딩 박스의 중심 좌표(x,y), 너비(w) 및 높이(h)에 해당할 수 있다.
또는 신경망 모델(들)은 복수의 레이어들을 포함하는 딥 뉴럴 네트워크(deep neural network, DNN)에 해당할 수 있고, 간단히 '신경망'으로 지칭될 수 있다. 복수의 레이어들은 입력 레이어(input layer), 히든 레이어(hidden layer), 및 출력 레이어(output layer)를 포함할 수 있다. 신경망은 완전 연결 네트워크(fully connected network, FCN), 컨볼루셔널 뉴럴 네트워크(convolutional neural network, CNN), 및 리커런트 뉴럴 네트워크(recurrent neural network, RNN)를 포함할 수 있다. 예를 들어, 신경망 내 복수의 레이어들 중 어느 일부는 컨볼루셔널 뉴럴 네트워크(CNN)에 해당할 수 있고, 다른 일부는 완전 연결 네트워크(FCN)에 해당할 수 있다. 이 경우, 컨볼루셔널 뉴럴 네트워크(CNN)는 컨볼루셔널 레이어로 지칭될 수 있고, 완전 연결 네트워크(FCN)는 완전 연결 레이어로 지칭될 수 있다.
컨볼루셔널 뉴럴 네트워크(CNN)의 경우, 각 레이어에 입력되는 데이터는 입력 특징 맵(input feature map)으로 지칭될 수 있고, 각 레이어에서 출력되는 데이터는 출력 특징 맵(output feature map)으로 지칭될 수 있다. 입력 특징 맵 및 출력 특징 맵은 액티베이션 데이터(activation data)로 지칭될 수도 있다. 컨볼루셔널 레이어가 입력 레이어에 해당하는 경우, 입력 레이어의 입력 특징 맵은 입력 영상(101)일 수 있다.
신경망 모델은 딥 러닝에 기반하여 트레이닝된 후, 비선형적 관계에 있는 입력 데이터 및 출력 데이터를 서로 매핑함으로써 트레이닝 목적에 맞는 추론(inference)을 수행해낼 수 있다. 딥 러닝은 빅 데이터 세트(Big Dataset)로부터 영상 또는 음성 인식과 같은 문제를 해결하기 위한 기계 학습 기법이다. 딥 러닝은 준비된 트레이닝 데이터를 이용하여 신경망을 트레이닝하면서 에너지가 최소화되는 지점을 찾아가는 최적화 문제 풀이 과정으로 이해될 수 있다.
딥 러닝의 지도식(supervised) 또는 비지도식(unsupervised) 학습을 통해 신경망의 구조, 혹은 모델에 대응하는 웨이트(weight)가 구해질 수 있고, 이러한 웨이트를 통해 입력 데이터 및 출력 데이터가 서로 매핑될 수 있다. 신경망의 폭과 깊이가 충분히 크면 임의의 함수를 구현할 수 있을 만큼의 용량(capacity)을 가질 수 있다. 신경망이 적절한 트레이닝 과정을 통해 충분히 많은 양의 트레이닝 데이터를 학습하면 최적의 성능을 달성할 수 있다.
신경망은 '미리' 트레이닝된 것으로 표현될 수 있는데, 여기서 '미리'는 신경망이 '시작'되기 전을 의미할 수 있다. 신경망이 '시작'되었다는 것은 신경망이 추론을 위한 준비가 된 것을 의미할 수 있다. 예를 들어, 신경망이 '시작'된다는 것은 신경망이 메모리에 로드(load)된 것, 혹은 신경망이 메모리에 로드된 이후에 신경망에 추론을 위한 입력 데이터가 입력된 것을 포함할 수 있다.
프로세서(130)는 선택된 신경망 모델을 기초로, 현재 프레임에 포함된 대상 객체의 바운딩 박스를 생성함으로써 대상 객체를 추적한 결과를 제공한다. 프로세서(130)는 예를 들어, 선택된 신경망 모델에 의해 현재 프레임을 크롭핑할 수 있다. 프로세서(130)는 선택된 신경망 모델에 의해 이전 프레임으로부터 추출한 특징에 기초한 템플릿 특징과 현재 프레임을 크롭핑한 영상으로부터 추출한 특징 간의 유사도를 측정할 수 있다. 프로세서(130)는 유사도를 기초로 현재 프레임을 크롭핑한 영상으로부터 추출한 특징에서 템플릿 특징에 매칭되는 영역을 나타내는 대상 객체의 바운딩 박스를 결정할 수 있다. 템플릿 특징에 대하여는 후술하기로 한다.
프로세서(130)는 명령어를 실행하여 도 1 내지 후술하는 도 10까지의 설명과 관련된 동작을 수행할 수 있다.
프로세서(130)는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다. 예를 들어, 하드웨어로 구현된 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(Central Processing Unit; CPU), 그래픽 처리 장치(Graphic Processing Unit; GPU), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array), NPU(Neural Processing Unit) 등을 포함할 수 있다.
프로세서(130)는 프로그램을 실행하고, 객체 추적 장치(100)를 제어할 수 있다. 프로세서(130)에 의하여 실행되는 프로그램 코드는 메모리(150)에 저장될 수 있다.
메모리(150)는 복수의 신경망 모델들을 포함할 수 있다. 메모리(150)는 프로세서(130)에 연결되고, 프로세서(130)에 의해 실행가능한 명령어들, 프로세서(130)가 연산할 데이터 또는 프로세서(130)에 의해 처리된 데이터를 저장할 수 있다. 메모리(150)는 비일시적인 컴퓨터 판독가능 매체, 예컨대 고속 랜덤 액세스 메모리 및/또는 비휘발성 컴퓨터 판독가능 저장 매체(예컨대, 하나 이상의 디스크 저장 장치, 플래쉬 메모리 장치, 또는 기타 비휘발성 솔리드 스테이트 메모리 장치)를 포함할 수 있다.
도 2는 일 실시예에 따라 대상 객체를 추적하는 워크 플로우(workflow)를 도시한 도면이다. 도 2를 참조하면, 객체 추적 장치가 입력 영상의 프레임들에서 대상 객체를 추적하는 과정이 도시된다.
객체 추적 장치는 입력 영상의 첫 번째 프레임에 관해 단계(205) 내지 단계(230)의 과정을 수행하여 대상 객체를 추적할 수 있다.
예를 들어, 단계(205)에서 사용자가 스마트 폰 또는 디지털 카메라의 화면에 나타난 객체들 중 추적하고자 하는 어느 하나의 객체('대상 객체')를 탭(tap)하여 선택했다고 하자. 이때, 탭 위치를 중심으로 대상 객체(예를 들어, 드론(drone))에 대응하는 관심 영역(region of interest, ROI)이 설정될 수 있다.
단계(210)에서 객체 추적 장치는 관심 영역(ROI)의 중심(center)을 기준으로 첫 번째 프레임에 대한 크롭핑(cropping)을 수행할 수 있다. 객체 추적 장치는 관심 영역(ROI)의 중심을 기준으로 첫 번째 프레임을 미리 정해진 크기(예: 255*255*3)만큼 크롭핑하여 관심 영역(ROI) 기반의 크롭 영상을 생성할 수 있다.
단계(215)에서 객체 추적 장치는 해당 크롭 영상에서 대상 객체를 검출(detection)하고, 바운딩 박스를 생성할 수 있다. 이때, 바운딩 박스에 의해 첫 번째 프레임 내의 대상 객체의 위치(location)가 특정될 수 있다. 예를 들어, 바운딩 박스의 중심은 첫 번째 프레임 내의 대상 객체의 위치를 특정하는 참조 위치(reference location)로 이용될 수 있다. 객체 추적 장치는 각 프레임에 관해 바운딩 박스를 결정할 수 있고, 각 프레임에 관한 바운딩 박스는 객체의 추적 결과에 해당할 수 있다. 단계(215)에서 바운딩 박스에 의해 특정된 첫 번째 프레임 내의 대상 객체의 위치는 두 번째 프레임을 처리하는 단계(250)로 전달될 수 있다.
단계(220)에서 객체 추적 장치는 단계(215)에서 생성한 바운딩 박스를 기반으로 바운딩 박스 기반의 크롭(B-Box based Crop)을 수행할 수 있다. 객체 추적 장치는 첫 번째 프레임을 바운딩 박스로 크롭핑하여 바운딩 박스와 같은 크기를 갖는 바운딩 박스 기반의 크롭 영상을 생성하거나, 혹은 바운딩 박스에 일정 배율을 적용한 영역으로 크롭핑하여 바운딩 박스와 다른 크기(예: 바운딩 박스보다 크거나 작은 크기)를 갖는 바운딩 박스 기반의 크롭 영상을 생성할 수 있다. 예를 들어, 바운딩 박스 기반의 크롭 영상의 크기는 127*127*3일 수 있다.
단계(225)에서 객체 추적 장치는 백본 네트워크(backbone network)를 이용하여 바운딩 박스 기반의 크롭 영상으로부터 특징을 추출할 수 있다. 백본 네트워크는 예를 들어, CNN기반의 특징 추출기일 수 있으며, 반드시 이에 한정되지는 않는다. 이때, 바운딩 박스 기반의 크롭 영상으로부터 추출한 특징은 예를 들어, 특징 맵의 형태를 가질 수 있다.
단계(230)에서 객체 추적 장치는 넥(neck)을 통해 단계(225)에서 추출한 특징의 차원(다시 말해 특징 맵의 크기)을 조절해 주는 전처리를 수행할 수 있다. 객체 추적 장치는 넥(neck)을 통해 특징 맵의 크기를 조절하여 템플릿(template)을 생성할 수 있다. 예를 들어, 특징 맵의 크기는 16*16*256이고, 템플릿의 크기는 7*7*256일 수 있다. 템플릿은 '템플릿 특징'이라고 지칭될 수도 있다.
객체 추적 장치는 입력 영상의 두 번째 프레임에 관해 단계(240) 내지 단계(280)의 과정을 수행할 수 있다.
단계(240)에서 객체 추적 장치는 버퍼링된 입력 영상의 두 번째 프레임을 호출할 수 있다. 실시예에 따라서, 단계(245)에서 객체 추적 장치는 호출하는 두 번째 프레임에 대한 미리 보기 표시(preview display)를 수행할 수도 있다. 단계(245)는 선택적으로 수행될 수 있다.
단계(250)에서 객체 추적 장치는 앞서 단계(215)에서 특정된 첫 번째 프레임 내의 대상 객체의 위치(location)를 기반으로 두 번째 프레임에 대한 크롭을 수행할 수 있다. 객체 추적 장치는 입력 영상의 두 번째 프레임을 바운딩 박스 중심으로 미리 정해진 크기(예: 255*255*3)만큼 크롭하여 위치 기반의 크롭 영상을 생성할 수 있다.
단계(255)에서 객체 추적 장치는 백본 네트워크를 사용하여 단계(250)에서 생성한 위치 기반의 크롭 영상으로부터 특징을 추출할 수 있다. 단계(255)에서 사용하는 백본 네트워크는 단계(225)에서 사용된 것과 동일한 CNN 기반의 특징 추출기 또는 특징 추출 신경망에 해당할 수 있다.
단계(260)에서 객체 추적 장치는 넥을 통해 단계(255)에서 추출한 특징(예를 들어, 특징 맵)의 크기를 조절할 수 있다.
단계(265)에서 객체 추적 장치는 CNN 기반의 영역 제안 네트워크(region proposal network, RPN)를 이용하여 현재 프레임(두 번째 프레임)을 위한 템플릿 특징과 단계(260)에서 크기가 조절된 특징 간의 특징 매칭(feature matching)을 수행할 수 있다. 템플릿은 단계(230)에서 생성된 것일 수 있다. 이때, 영역 제안 네트워크(RPN)는 아래의 도 3을 통해 설명하는 가변적으로 사용 가능한 복수의 신경망들에 해당할 수 있다. 단계(265)에서 객체 추적 장치는 특징 매칭을 수행하여 단계(260)에서 크기가 조절된 특징에서 템플릿에 매칭되는 영역을 나타내는 바운딩 박스를 결정할 수 있다. 바운딩 박스는 두 번째 프레임 내의 대상 객체의 위치를 특정할 수 있다. 이때, 바운딩 박스의 중심은 두 번째 프레임 내의 대상 객체의 위치를 특정하는 참조 위치로 이용될 수 있다. 두 번째 프레임의 바운딩 박스가 결정됨에 따라 객체 추적 장치는 대상 객체의 움직임을 추적 또는 예측할 수 있다.
단계(270)에서 객체 추적 장치는 단계(265)에서 결정한 바운딩 박스에 기초하여 템플릿을 업데이트할 수 있다. 객체 추적 장치는 대상 객체를 제외한 나머지 객체들에 의해 템플릿을 업데이트할 수 있다. 보다 구체적으로, 객체 추적 장치는 이전 프레임(첫번째 프레임) 내의 대상 객체의 이전 참조 위치와 현재 프레임(두 번째 프레임) 내의 대상 객체의 현재 참조 위치 간의 차이에 기초하여 객체의 움직임을 예측할 수 있다. 이때, 바운딩 박스의 중심이 각 참조 위치로 이용될 수 있다. 이와 같이 예측된 움직임은 다음 프레임(세 번째 프레임)에서 크롭 크기를 설정하고, 객체 추적(예를 들어, 특징 추출 및/또는 특징 매칭)을 수행하는 신경망 모델을 선택하는데 이용될 수 있다.
단계(275)에서 객체 추적 장치는 단계(265)에서 네트워크를 통과한 결과에서 발생한 지터(jitter)를 제거할 수 있다.
객체 추적 장치는 객체의 움직임을 고려하여 입력 영상의 세 번째 프레임에 관해 단계(250) 내지 단계(275)의 과정을 수행할 수 있다. 보다 구체적으로, 객체 추적 장치는 이전 프레임의 특징에 포함된 객체의 특성 값을 기초로, 특성 값의 범위에 따라 미리 구비된 복수의 신경망 모델들 중 어느 하나를 선택하여 세 번째 프레임을 크롭할 수 있다. 이때, 신경망 모델은 프레임에서 특성 값이 변화하는 대상 객체에 대한 특징 추출을 수행하도록 구현되거나, 혹은 특성 값이 변화하는 대상 객체에 대한 특징 추출 및 특징 매칭을 모두 수행하도록 구현될 수 있다. 전자의 경우 신경망 모델은 특징 추출기에 해당할 수 있고, 후자의 경우 신경망 모델은 특징 추출기, 넥, 헤드(예: RPN)의 결합에 해당할 수 있다.
객체 추적 장치는 대상 객체의 움직임을 예측하고, 객체의 움직임에 적응적으로 객체 추적을 수행하는 동작들을 입력 영상의 나머지 프레임들에 관해서도 반복하여 수행할 수 있다. 각 프레임에 대해 단계(250) 내지 단계(275)를 수행한 결과에 따른 바운딩 박스에 의해 특정된 프레임 내의 대상 객체의 위치는 다음 번 프레임에 대한 크롭핑을 수행하는 단계(250)로 전달될 수 있다.
단계(280)에서 객체 추적 장치는 단계(275)에서 지터가 제거된 최종 결과에 해당하는 추적 결과(바운딩 박스)를 표시할 수 있다.
도 3은 일 실시예에 따른 객체 추적 장치의 구성을 도시한 도면이다. 도 3을 참조하면, 복수의 신경망 모델(330, 340, 350)을 포함하는 다중 경로(Multi-path) 네트워크 구조의 객체 추적 장치(300)가 도시된다.
객체 추적 장치(300)는 복수의 신경망 모델(330, 340, 350)를 포함할 수 있다. 복수의 신경망 모델(330, 340, 350) 각각은 예를 들어, 서로 다른 프레임의 특징들 간의 유사도를 측정하도록 트레이닝된 유사도 측정 네트워크(Similarity Measure Network; SMN)일 수 있다.
복수의 신경망 모델(330, 340, 350)은 다중 경로 중 어느 하나를 선택하는 선택 회로(320)을 통해 어느 하나의 신경망 모델에 대한 선택적 사용이 가능하도록 구성된 객체 추적 네트워크일 수 있다.
객체 추적 장치(300)는 특징 추출 네트워크(310)에 의해 이전 프레임에서 추정한 객체의 특징을 이용하여 복수의 신경망 모델(330, 340, 350) 중 현재 프레임의 추적에 사용될 어느 하나의 유사도 측정 네트워크를 가변적으로 선택함으로써 대상 객체를 추적할 바운딩 박스(360)를 결정할 수 있다. 특징 추출 네트워크(310)는 입력 영상의 프레임에서 특징을 추출하는 백본 네트워크를 공유하는 구조로 구성될 수 있다.
예를 들어, 제1 신경망 모델(330)은 제1 앵커 셋(Anchor set #1)(301)에 대응될 수 있다. 제2 신경망 모델(340)는 제2 앵커 셋(Anchor set #2)(302)에 대응될 수 있다. 제3 신경망 모델(350)는 제3 앵커 셋(Anchor set #3)(303)에 대응될 수 있다. 앵커 셋은 슬라이딩 윈도우(sliding window)의 각 위치에서 바운딩 박스의 후보로 사용되는 다양한 크기의 사각형의 앵커 박스들(anchor box)의 집합에 해당할 수 있다. 직관적으로 설명하자면, 신경망 모델은 동일한 크기의 슬라이딩 윈도우를 이동시키며 윈도우의 위치를 중심으로 사전에 정의된 다양한 비율/크기의 사각형의 앵커 박스들을 적용하여 특징을 추출할 수 있다.
복수의 신경망 모델(330, 340, 350) 중 어느 하나의 신경망 모델은 대상 객체의 특성이 가질 수 있는 특성 값의 전체 범위 중 일부 범위에 해당하는 특성 값을 갖는 대상 객체들을 집중적으로 처리할 수 있다. 예를 들어, 유사도 측정 네트워크(350)는 다양한 종횡 비 값들(예를 들어, 0.1부터 10까지의 종횡 비 값들) 중 일부 범위(예를 들어, 종횡 비가 5보다 큰 범위)를 갖는 대상 객체들을 처리할 수 있다.
일 실시예에서는 도 3에 도시된 것과 같이 복수의 신경망 모델(330, 340, 350) 중 어느 하나의 신경망 모델을 가변적으로 사용하는 구조를 통해 데이터의 분산 측면에서 상대적으로 밀집된 분포군을 입력으로 받아 처리함으로써 객체 추적 성능을 향상시킬 수 있다. 또한, 일 실시예에서는 복수의 신경망 모델(330, 340, 350) 각각의 마지막 출력부를 좁혀진 대상 객체의 특성 값의 일부 범위에 더욱 적합하도록 각기 다르게 설계함으로써 객체 추적 성능을 향상시킬 수 있다.
예를 들어, 신경망 모델을 하나만 구비하는 경우, 특성 값의 전체 범위를 포괄하기 위해 범용적인 앵커 셋을 가져야 한다. 이와 달리, 일 실시예에서는 복수의 신경망 모델(330, 340, 350) 각각이 대상 객체의 특성 값의 일부 범위에 더욱 적합한 앵커 셋을 가짐으로써 바운딩 박스 리그레션(bounding box regression) 시에 대상 객체의 위치를 보다 정확하게 추정할 수 있다.
이 밖에도, 일 실시예에서는 대상 객체의 추적 시에 한 프레임을 복수의 신경망 모델(330, 340, 350)에 모두 통과시키는 것이 아니라, 이전 프레임에서 얻은 대상 객체의 특성 값을 기준으로 선택한 하나의 신경망 모델을 사용할 수 있다. 복수의 신경망 모델(330, 340, 350)을 구비하기는 하지만, 그 중 하나의 신경망 모델을 사용하므로 신경망 모델을 하나만 구비하는 구조와 동일한 처리 속도, 혹은 동일한 지연 시간을 보장할 수 있다.
도 4는 일 실시예에 따른 대상 객체를 추적하는 방법을 나타낸 흐름도이다. 이하 실시예에서 각 단계들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 단계들의 순서가 변경될 수도 있으며, 적어도 두 단계들이 병렬적으로 수행될 수도 있다. 도 4를 참조하면, 객체 추적 장치는 단계(410) 내지 단계(430)을 통해 대상 객체를 추적할 수 있다.
단계(410)에서 객체 추적 장치는 입력 영상의 프레임들로부터 특징을 추출한다. 예를 들어, 해당 프레임이 프레임들 중 대상 객체를 포함하는 첫 번째 프레임인 경우, 객체 추적 장치는 첫 번째 프레임에서 사용자의 선택에 기초하여 크롭핑된 영역의 특징 또는 입력 영상에 대응하는 정답(ground truth)의 위치 정보에 기초하여 크롭핑된 영역의 특징을 추출할 수 있다. 해당 프레임이 프레임들 중 대상 객체를 포함하는 첫 번째 프레임이 아닌 경우, 객체 추적 장치는 이전 프레임에서 생성된 바운딩 박스에 기초하여 크롭핑된 영역의 특징을 추출할 수 있다.
연속된 입력 영상 중 특정 프레임에서 추적하고자 대상 객체의 위치 정보(bounding box)를 제공받으면, 객체 추적 장치는 대상 객체의 위치 정보를 중심으로 크롭핑된 영상을 생성할 수 있다. 객체 추적 장치는 크롭핑된 영상을 특징 추출 네트워크(예를 들어, 도 3의 특징 추출 네트워크(310))에 통과시켜 특징을 추출함으로써 도 2를 통해 전술한 템플릿(Template) 또는 템플릿 특징(Template feature)을 생성할 수 있다.
단계(420)에서 객체 추적 장치는 프레임들 중 이전 프레임의 특징에 포함된 대상 객체의 특성 값을 기초로, 특성 값의 범위에 따라 미리 구비된 복수의 신경망 모델들 중 어느 하나의 신경망 모델을 선택한다. 객체 추적 장치는 신경망 모델의 선택 시에 대상 객체의 특성 값을 그대로 사용할 수도 있고, 또는 대상 객체의 특성 값을 가공하여 사용할 수도 있다.
단계(420)에서 객체 추적 장치는 대상 객체의 특성 값을 가공할 수 있다. 예를 들어, 대상 객체의 특성 값이 종횡 비라고 하자. 객체 추적 장치는 대상 객체의 특성 값인 종횡 비를, 대상 객체의 종횡 비와 이전 프레임의 추적 결과로 얻은 객체의 종횡 비 간의 비율로 가공할 수 있다. 객체 추적 장치는 가공된 특성 값을 기초로, 가공된 특성 값의 범위에 따라 미리 구비된 복수의 신경망 모델들 중 어느 하나의 신경망 모델을 선택할 수도 있다.
단계(430)에서 객체 추적 장치는 단계(420)에서 선택된 신경망 모델을 기초로, 현재 프레임에 포함된 대상 객체의 바운딩 박스를 생성한다. 객체 추적 장치는 단계(420)에서 선택된 신경망 모델에 의해 현재 프레임을 크롭핑하고, 현재 프레임을 크롭핑한 영상에서 특징(또는 특징 맵)을 추출할 수 있다. 객체 추적 장치는 현재 프레임을 크롭핑한 영상에서 추출한 특징과 템플릿 특징과의 유사도 측정(similarity measure)을 통해 대상 객체의 존재 여부와 대상 객체의 위치를 추정할 수 있다. 객체 추적 장치는 단계(420)에서 선택된 신경망 모델에 의해 템플릿 특징과 현재 프레임을 크롭핑한 영상으로부터 추출한 특징 간의 유사도를 측정 또는 산출을 수행할 수 있다. 객체 추적 장치는 측정한 유사도를 기초로 현재 프레임을 크롭핑한 영상으로부터 추출한 특징에서 템플릿 특징에 매칭되는 영역을 나타내는 대상 객체의 바운딩 박스를 결정할 수 있다. 이때, 단계(420)에서 선택된 신경망 모델의 출력은 현재 프레임에서 추정된 대상 객체의 위치에 해당하는 바운딩 박스일 수 있다. 현재 프레임에서 추정된 대상 객체의 위치는 다시 다음 프레임의 처리를 위한 입력으로 사용될 수 있다.
도 5는 일 실시예에 따른 복수의 신경망 모델들에 대응하는 종횡 비가 상이한 대상 객체들을 도시한 도면이다. 도 5를 참조하면, 객체의 대표적 특성 중 하나인 종횡 비가 서로 다른 객체들(510, 520, 530)이 도시된다.
대상 객체의 특성은 대상 객체의 크기, 대상 객체의 종횡 비, 대상 객체의 종류, 대상 객체의 움직임 변화 정도, 대상 객체의 움직임 종류, 대상 객체의 색상, 상기 대상 객체의 강도, 및 조도 이외에도 다양한 구분 가능한 특성들을 포함할 수 있다. 대상 객체의 특성은 영상 프레임으로부터 추출 가능한 특징을 기반으로 가변적 네트워크를 구성하는 기준이 될 수 있다.
일 실시예에 따른 복수의 신경망 모델 각각은 객체들(510, 520, 530)과 같이 종횡 비 값들 중 일부 범위에 해당하는 객체를 처리하도록 트레이닝될 수 있다. 예를 들어, 복수의 신경망 모델 중 제1 신경망 모델은 종횡 비 값이 0.05보다 크고 1보다 작은 범위에 해당하는 객체를 처리하도록 트레이닝될 수 있다. 제1 신경망 모델은 종횡 비 값이 0.25인 객체(510)를 처리할 수 있다. 제2 신경망 모델은 종횡 비 값이 1보다 같거나 크고 4보다 작은 범위에 해당하는 객체를 처리하도록 트레이닝될 수 있다. 제2 신경망 모델은 종횡 비 값이 1인 객체(520)를 처리할 수 있다. 제3 신경망 모델은 종횡 비 값이 4보다 같거나 크고 8보다 작은 범위에 해당하는 객체를 처리하도록 트레이닝될 수 있다. 제3 신경망 모델은 종횡 비 값이 5인 객체(530)를 처리할 수 있다.
일 실시예에서는 종횡 비 값들 중 일부 범위에 해당하는 대상 객체를 처리하도록 트레이닝된 신경망 모델을 가변적으로 선택하여 사용함으로써 모든 종횡 비 값들을 하나의 신경망 모델에 의해 처리하는 구조와 비교할 때 처리 속도는 동일하지만, 더 높은 추적 성공률을 나타낼 수 있다. 또한, 일 실시예에서는 입력 영상의 특징을 추출하는 백본 네트워크를 공유하는 구조를 통해 복수 개의 추적기를 별도로 사용하지 않으므로 메모리 사용율을 감소시킬 수 있다.
도 6은 다른 실시예에 따른 대상 객체를 추적하는 방법을 나타낸 흐름도이다. 이하 실시예에서 각 단계들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 단계들의 순서가 변경될 수도 있으며, 적어도 두 단계들이 병렬적으로 수행될 수도 있다.
도 6을 참조하면, 객체 추적 장치가 단계(610) 내지 단계(660)을 통해 대상 객체를 추적하는 과정이 도시된다.
단계(610)에서 객체 추적 장치는 연속되는 복수의 프레임들을 포함하는 입력 영상을 수신할 수 있다.
단계(620)에서 객체 추적 장치는 단계(610)에서 수신한 프레임이 첫 번째 프레임인지를 판단할 수 있다. 이때, 첫 번째 프레임은 추적하고자 하는 대상으로 선택된 대상 객체의 특성(예를 들어, 종횡 비)를 포함할 수 있다.
수신한 프레임이 첫 번째 프레임이라고 판단되면, 단계(630)에서 객체 추적 장치는 첫 번째 프레임에서 사용자의 선택에 기초하여 크롭핑된 영역의 특징을 추출할 수 있다. 단계(640)에서 객체 추적 장치는 대상 객체의 특성(종횡 비)를 활용하여 복수 개의 신경망 모델들(650) 중 해당 프레임에 대해 사용할 신경망 모델을 선택할 수 있다. 객체 추적 장치는 한 프레임의 처리에 하나의 신경망 모델을 사용할 수 있다.
이와 달리, 수신한 프레임이 첫 번째 프레임이 아니라고 판단되면, 단계(640)에서 객체 추적 장치는 이전 프레임에서 생성된 바운딩 박스에 기초하여 크롭핑된 영역의 특징을 추출할 수 있다.
단계(660)에서 객체 추적 장치는 복수 개의 신경망 모델들(650) 중 단계(640)에서 선택된 어느 하나의 신경망 모델에 의해 대상 객체를 추적할 수 있다. 단계(650)의 추적 결과는 단계(640)으로 전달되어 두번째 프레임 이후의 프레임들의 처리를 진행할 신경망 모델을 선택하는 데에 이용될 수 있다.
도 7은 일 실시예에 따라 대상 객체를 추적하는 복수의 신경망 모델들을 포함하는 가변 네트워크를 도시한 도면이다. 도 7을 참조하면, 가변 네트워크로 구성된 객체 추적 장치(700)의 구조가 도시된다.
객체 추적 장치(700)는 특징 추출 네트워크(710)에 의해 입력 영상의 프레임들로부터 특징을 추출할 수 있다. 특징 추출 네트워크(710)는 입력 영상의 프레임들로부터 특징을 추출하도록 트레이닝된 별도의 신경망일 수도 있고, 또는 영역 제안 신경망(RPN)의 일부에 해당할 수도 있다. 특징 추출 네트워크(710)는 프레임들 각각으로부터 특징을 추출하는 데에 공유될 수 있다.
연속된 입력 영상 중 특정 프레임에서 추적하고자 대상 객체의 위치 정보를 제공받으면, 객체 추적 장치(700)는 대상 객체의 위치 정보를 중심으로 크롭핑된 영상을 생성할 수 있다.
해당 프레임이 첫 번째 프레임인 경우, 객체 추적 장치(700)는 사용자의 선택에 기초하여 선택 영역이 크롭핑된 영상을 특징 추출 네트워크(710)에 통과시켜 특징을 추출할 수 있다. 또는 해당 프레임이 두번째 프레임 또는 그 이후의 프레임인 경우, 객체 추적 장치(700)는 이전 프레임에서 생성된 바운딩 박스에 기초하여 대상 객체에 대응하는 영역이 크롭핑된 영상을 특징 추출 네트워크(710)에 통과시켜 특징을 추출할 수 있다. 이때, 첫 번째 프레임 또는 이전 프레임을 특징 추출 네트워크(710)에 통과시켜 추출한 특징이 신경망 모델들(730, 740, 750)에서의 유사도 측정 시에 사용되는 템플릿 특징(Template feature)(705)이 될 수 있다.
객체 추적 장치(700)는 선택 회로(720)에 의해 특성 값의 범위에 따라 미리 구비된 복수의 신경망 모델들(730, 740, 750) 중 어느 하나의 신경망 모델을 선택할 수 있다. 선택 회로(720)는 이전 프레임의 특징에 포함된 대상 객체의 특성 값에 따라 현재 프레임의 추적에 사용될 어느 하나의 신경망 모델을 가변적으로 선택할 수 있다. 복수의 신경망 모델들(730, 740, 750)은 템플릿 특징(705)과 현재 프레임을 크롭핑한 영상으로부터 추출한 특징 간의 유사도를 측정하도록 트레이닝된 유사도 측정 네트워크들에 해당할 수 있다.
객체 추적 장치(700)는 선택 회로(720)에서 선택된 하나의 신경망 모델을 기초로, 현재 프레임에 포함된 대상 객체의 위치에 해당하는 바운딩 박스(760)를 통해 대상 객체를 추적할 수 있다. 바운딩 박스(760)는 추적 결과, 다시 말해 현재 프레임에서 추정된 대상 객체의 위치에 해당하며, 다음 프레임의 처리를 위해 선택 회로(720)로 전달될 수 있다. 선택 회로(720)는 현재 프레임에서 추정된 대상 객체의 위치에 기초한 대상 객체의 특성 값에 따라 다음 프레임을 위한 신경망 모델을 선택할 수 있다. 선택 회로(720) 및 복수의 신경망 모델들(730, 740, 750)은 영역 제안 신경망으로 구성될 수 있다.
도 8은 일 실시예에 따른 복수의 신경망 모델들이 서로 다른 특성 값을 갖는 대상 객체들을 추적하는 과정을 설명하기 위한 도면이다. 도 8을 참조하면, 종횡 비 값이 0.25인 객체를 포함하는 제1 프레임(801) 및 종횡 비 값이 5인 객체를 포함하는 제2 프레임(803)이 입력된 경우에 객체 추적 장치가 제1 프레임(801) 및 제2 프레임(803)에 포함된 대상 객체를 추적하는 과정이 도시된다.
예를 들어, 제1 프레임(801)이 입력 영상의 첫 번째 프레임이고, 종횡 비 값이 0.25인 객체가 사용자에 의해 선택된 관심 영역(ROI)에 해당하는 대상 객체라고 하자.
제1 프레임(801)이 입력되면, 객체 추적 장치는 제1 프레임(801) 중 관심 영역(ROI)에 해당하는 일부 영역을 크롭핑할 수 있다. 이때, 크롭핑된 일부 영역은 종횡 비 값이 0.25인 객체를 포함할 수 있다. 객체 추적 장치는 특징 추출 네트워크(810)에 의해 관심 영역이 크롭핑된 영상으로부터 특징을 추출할 수 있다. 추출된 특징은 관심 영역이 크롭핑된 영상에 포함된 다양한 특성들을 포함할 수 있다. 이때 추출된 특징은 템플릿 특징으로 사용될 수 있다.
선택 회로(820)는 특징 추출 네트워크(810)가 추출한 특징에 포함된 대상 객체의 특성 값(종횡 비 0.25)을 기초로, 해당 특성(종횡 비)에 대응하여 미리 구비된 복수의 신경망 모델들(830, 840, 850) 중 특성 값의 범위('branch 2')에 대응되는 신경망 모델(830)을 선택할 수 있다. 이때, 선택 회로(820)의 분기 조건, 다시 말해 복수의 신경망 모델들(830, 840, 850)에 대응하는 앵커 셋들의 특성 값의 범위는 예를 들어, 표(870)과 같이 미리 구비될 수 있다.
객체 추적 장치는 신경망 모델(830)을 기초로 바운딩 박스를 생성하여 제1 프레임(801)에 포함된 종횡 비 0.25인 대상 객체를 추적할 수 있다.
객체 추적 장치는 신경망 모델(830)에 기초한 바운딩 박스에 의해 추정된 대상 객체의 위치를 추적 결과(860)로서 출력할 수 있다. 추적 결과(860)는 선택 회로(820)로 전달될 수 있다.
이후, 제2 프레임(803)이 입력되면, 객체 추적 장치는 특징 추출 네트워크(810)에 의해 제2 프레임(803)으로부터 특징을 추출할 수 있다. 제2 프레임(803)으로부터 추출된 특징은 제2 프레임(803)에 포함된 대상 객체의 특성(종횡 비 5)을 포함할 수 있다.
객체 추적 장치는 제1 프레임(801)에 포함된 대상 객체의 특성값(종횡 비 0.25)을 기초로, 제2 프레임(803)으로부터 추출된 특징에 포함된 대상 객체의 특성 값(종횡 비 5)의 범위에 따라 복수의 신경망 모델들(830, 840, 850) 중 어느 하나의 신경망 모델을 선택할 수 있다. 예를 들어, 제1 프레임(801)과 제2 프레임(803)에 포함된 대상 객체가 서로 동일한 특성값의 범위를 갖는 경우, 동일한 신경망 모델이 선택될 수 있다.
도 8에 도시된 실시예와 같이 제1 프레임(801)과 제2 프레임(803)에 포함된 대상 객체가 상이한 특성값의 범위를 갖는 경우, 객체 추적 장치는 표(870)에서 제2 프레임(803)에 포함된 대상 객체의 특성 값(종횡 비 5)의 범위('branch 0')에 대응되는 신경망 모델(850)을 선택할 수 있다.
객체 추적 장치는 신경망 모델(850)을 기초로, 제2 프레임(803)에 포함된 대상 객체의 바운딩 박스를 생성할 수 있다. 객체 추적 장치는 제2 프레임(803)으로부터 추출된 특징과 전술한 템플릿 특징 간의 유사도 측정(similarity measure)을 통해 대상 객체의 존재 여부와 대상 객체의 위치를 추정할 수 있다. 객체 추적 장치는 측정한 유사도를 기초로 제2 프레임(803)에서 추출한 특징에서 템플릿 특징에 매칭되는 영역을 나타내는 대상 객체의 바운딩 박스를 결정할 수 있다.
도 9는 일 실시예에 따른 전자 장치의 블록도이다. 도 9를 참조하면, 전자 장치(900)는 입력 영상을 획득하고, 획득된 입력 영상에서 객체를 추적할 수 있다. 또한, 전자 장치(900)는 추적된 객체와 연계된 동작들을 수행할 수 있다. 전자 장치(900)는 도 1의 객체 추적 장치(100)를 구조적 및/또는 기능적으로 포함할 수 있다.
전자 장치(900)는 프로세서(910), 메모리(920), 카메라(930), 저장 장치(940), 입력 장치(950), 출력 장치(960) 및 사용자 인터페이스(970)를 포함할 수 있으며, 이들은 통신 버스(980)를 통해 서로 통신할 수 있다. 예를 들어, 전자 장치(900)는 이동 전화, 스마트 폰, PDA, 넷북, 태블릿 컴퓨터, 랩톱 컴퓨터 등과 같은 모바일 장치, 스마트 워치, 스마트 밴드, 스마트 안경 등과 같은 웨어러블 디바이스, 데스크탑, 서버 등과 같은 컴퓨팅 장치, 첨단 운전자 보조 시스템(Advanced Drivers Assistance System; ADAS), HUD(Head Up Display) 장치, 3D 디지털 정보 디스플레이(Digital Information Display, DID), 내비게이션 장치, 뉴로모픽 장치(neuromorphic device), 스마트 가전(예를 들어, 스마트 TV, 스마트 냉장고, 스마트 세탁기 등), 스마트 차량, IoT(Internet of Things) 디바이스, 의료 디바이스, 및 계측 디바이스의 적어도 일부로 구현될 수 있다.
프로세서(910)는 입력 영상의 프레임들로부터 특징을 추출한다. 프로세서(910)는 프레임들 중 이전 프레임의 특징에 포함된 대상 객체의 특성 값을 기초로, 특성 값의 범위에 따라 미리 구비된 복수의 신경망 모델들 중 어느 하나의 신경망 모델을 선택한다. 프로세서(910)는 선택된 신경망 모델을 기초로 생성된 현재 프레임에 포함된 대상 객체의 바운딩 박스에 의해 대상 객체를 추적한다.
프로세서(910)는 전자 장치(900) 내에서 실행하기 위한 기능 및 명령어들을 실행한다. 예를 들어, 프로세서(910)는 메모리(920) 또는 저장 장치(940)에 저장된 명령어들을 처리할 수 있다. 프로세서(910)는 도 1 내지 도 8을 통하여 설명한 동작을 수행할 수 있다.
메모리(920)는 객체 추적을 위한 데이터를 저장한다. 메모리(920)는 복수의 신경망 모델들을 저장할 수 있다. 메모리(920)는 컴퓨터 판독가능한 저장 매체 또는 컴퓨터 판독가능한 저장 장치를 포함할 수 있다. 메모리(920)는 프로세서(910)에 의해 실행하기 위한 명령어들을 저장할 수 있고, 전자 장치(900)에 의해 소프트웨어 및/또는 애플리케이션이 실행되는 동안 관련 정보를 저장할 수 있다.
카메라(930)는 감지된 시각 정보에 기초하여 입력 영상을 생성한다. 카메라(930)는 사진 및/또는 비디오를 촬영할 수 있다. 예를 들어, 카메라(930)는 사용자의 신체 및/또는 얼굴을 포함하는 사용자 영상을 촬영할 수 있다. 카메라(930)는 객체들에 관한 깊이 정보를 포함하는 3D 영상을 제공하는 3D 카메라일 수 있다.
저장 장치(940)는 컴퓨터 판독가능한 저장 매체 또는 컴퓨터 판독가능한 저장 장치를 포함한다. 저장 장치(940)는 객체 추적 과정에서 사용되는 각종 데이터를 저장할 수 있다. 저장 장치(940)는 메모리(920)보다 더 많은 양의 정보를 저장하고, 정보를 장기간 저장할 수 있다. 예를 들어, 저장 장치(940)는 자기 하드 디스크, 광 디스크, 플래쉬 메모리, 플로피 디스크 또는 이 기술 분야에서 알려진 다른 형태의 비휘발성 메모리를 포함할 수 있다.
입력 장치(950)는 키보드 및 마우스를 통한 전통적인 입력 방식, 및 터치 입력, 음성 입력, 및 이미지 입력과 같은 새로운 입력 방식을 통해 사용자로부터 입력을 수신할 수 있다. 예를 들어, 입력 장치(950)는 키보드, 마우스, 터치 스크린, 마이크로폰, 또는 사용자로부터 입력을 검출하고, 검출된 입력을 전자 장치(900)에 전달할 수 있는 임의의 다른 장치를 포함할 수 있다.
출력 장치(960)는 시각적, 청각적 또는 촉각적인 채널을 통해 사용자에게 전자 장치(900)의 출력을 제공할 수 있다. 출력 장치(960)는 예를 들어, 디스플레이, 터치 스크린, 스피커, 진동 발생 장치 또는 사용자에게 출력을 제공할 수 있는 임의의 다른 장치를 포함할 수 있다. 사용자 인터페이스(960)는 입력 영상에 포함된 대상 객체에 대한 사용자의 선택을 입력받는다. 도면에 도시하지 않았지만, 전자 장치(900)는 유선 또는 무선 네트워크를 통해 외부 장치와 통신하는 통신 인터페이스를 더 포함할 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 저장할 수 있으며 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
위에서 설명한 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 또는 복수의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 이를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (20)

  1. 입력 영상의 프레임들로부터 특징을 추출하는 단계;
    상기 프레임들 중 이전 프레임의 상기 특징에 포함된 대상 객체의 특성 값(feature value)을 기초로, 상기 특성 값의 범위에 따라 미리 구비된 복수의 신경망 모델들 중 어느 하나의 신경망 모델을 선택하는 단계; 및
    상기 선택된 신경망 모델을 기초로, 현재 프레임에 포함된 상기 대상 객체의 바운딩 박스(bounding box)를 생성하는 단계
    를 포함하는, 대상 객체를 추적하는 방법.
  2. 제1항에 있어서,
    상기 특징을 추출하는 단계는
    해당 프레임이 상기 프레임들 중 상기 대상 객체를 포함하는 첫 번째 프레임인 경우,
    상기 첫 번째 프레임에서 사용자의 선택에 기초하여 크롭핑된 영역의 특징을 추출하는 단계
    를 포함하는, 대상 객체를 추적하는 방법.
  3. 제1항에 있어서,
    상기 특징을 추출하는 단계는
    해당 프레임이 상기 프레임들 중 상기 대상 객체를 포함하는 첫 번째 프레임이 아닌 경우,
    상기 이전 프레임에서 생성된 바운딩 박스에 기초하여 크롭핑된 영역의 특징을 추출하는 단계
    를 포함하는, 대상 객체를 추적하는 방법.
  4. 제1항에 있어서,
    상기 대상 객체의 특성 값은
    상기 대상 객체의 크기, 상기 대상 객체의 종횡 비, 상기 대상 객체의 종류, 상기 대상 객체의 움직임 변화 정도, 상기 대상 객체의 움직임 종류, 상기 대상 객체의 색상, 상기 대상 객체의 강도, 및 조도 중 적어도 하나에 대응하는, 대상 객체를 추적하는 방법.
  5. 제1항에 있어서,
    상기 어느 하나의 신경망 모델을 선택하는 단계는
    상기 대상 객체의 특성 값을 가공하는 단계; 및
    상기 가공된 특성 값을 기초로, 상기 가공된 특성 값의 범위에 따라 미리 구비된 복수의 신경망 모델들 중 어느 하나의 신경망 모델을 선택하는 단계
    를 포함하는, 대상 객체를 추적하는 방법.
  6. 제1항에 있어서,
    상기 복수의 신경망 모델들은
    상기 특성 값의 제1 범위에 대응하는 대상 객체를 제안하도록 트레이닝된 제1 신경망 모델;
    상기 특성 값의 제2 범위에 대응하는 대상 객체를 제안하도록 트레이닝된 제2 신경망 모델; 및
    상기 특성 값의 제3 범위에 대응하는 대상 객체를 제안하도록 트레이닝된 제3 신경망 모델
    을 포함하는, 대상 객체를 추적하는 방법.
  7. 제6항에 있어서,
    상기 제1 범위, 상기 제2 범위, 및 상기 제3 범위는 상이한, 대상 객체를 추적하는 방법.
  8. 제1항에 있어서,
    상기 선택된 신경망 모델은
    상기 대상 객체의 특성 값들 중 일부 범위에 해당하는 특성 값을 갖는 대상 객체를 처리하는, 대상 객체를 추적하는 방법.
  9. 제1항에 있어서,
    상기 대상 객체의 바운딩 박스를 생성하는 단계는
    상기 선택된 신경망 모델에 의해 상기 현재 프레임을 크롭핑(cropping)하는 단계;
    상기 선택된 신경망 모델에 의해 상기 이전 프레임으로부터 추출한 특징에 기초한 템플릿 특징(template feature)과 상기 현재 프레임을 크롭핑한 영상으로부터 추출한 특징 간의 유사도(similarity)를 측정하는 단계; 및
    상기 유사도를 기초로 상기 현재 프레임을 크롭핑한 영상으로부터 추출한 특징에서 상기 템플릿 특징에 매칭되는 영역을 나타내는 상기 대상 객체의 바운딩 박스를 결정하는 단계
    를 포함하는, 대상 객체를 추적하는 방법.
  10. 제1항에 있어서,
    상기 대상 객체에 대한 사용자의 선택을 입력받는 단계
    를 더 포함하는, 대상 객체를 추적하는 방법.
  11. 하드웨어와 결합되어 제1항 내지 제10항 중 어느 하나의 항의 방법을 실행시키기 위하여 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
  12. 입력 영상을 획득하는 통신 인터페이스; 및
    상기 입력 영상의 프레임들로부터 특징을 추출하고, 상기 프레임들 중 이전 프레임의 상기 특징에 포함된 대상 객체의 특성 값을 기초로, 상기 특성 값의 범위에 따라 미리 구비된 복수의 신경망 모델들 중 어느 하나의 신경망 모델을 선택하며, 상기 선택된 신경망 모델을 기초로, 현재 프레임에 포함된 상기 대상 객체의 바운딩 박스를 생성하는 프로세서
    를 포함하는, 대상 객체를 추적하는 장치.
  13. 제12항에 있어서,
    상기 프로세서는
    해당 프레임이 상기 프레임들 중 상기 대상 객체를 포함하는 첫 번째 프레임인 경우, 상기 첫 번째 프레임에서 사용자의 선택에 기초하여 크롭핑된 영역의 특징을 추출하는, 대상 객체를 추적하는 장치.
  14. 제12항에 있어서,
    상기 프로세서는
    해당 프레임이 상기 프레임들 중 상기 대상 객체를 포함하는 첫 번째 프레임이 아닌 경우, 상기 이전 프레임에서 생성된 바운딩 박스에 기초하여 크롭핑된 영역의 특징을 추출하는, 대상 객체를 추적하는 장치.
  15. 제12항에 있어서,
    상기 프로세서는
    상기 대상 객체의 특성 값을 가공하고, 상기 가공된 특성 값을 기초로, 상기 가공된 특성 값의 범위에 따라 미리 구비된 복수의 신경망 모델들 중 어느 하나의 신경망 모델을 선택하는, 대상 객체를 추적하는 장치.
  16. 제12항에 있어서,
    상기 복수의 신경망 모델들은
    상기 특성 값의 제1 범위에 대응하는 대상 객체를 제안하도록 트레이닝된 제1 신경망 모델;
    상기 특성 값의 제2 범위에 대응하는 대상 객체를 제안하도록 트레이닝된 제2 신경망 모델; 및
    상기 특성 값의 제3 범위에 대응하는 대상 객체를 제안하도록 트레이닝된 제3 신경망 모델
    을 포함하고,
    상기 제1 범위, 상기 제2 범위, 및 상기 제3 범위는 상이한, 대상 객체를 추적하는 장치.
  17. 제12항에 있어서,
    상기 프로세서는
    상기 선택된 신경망 모델에 의해 상기 현재 프레임을 크롭핑하고, 상기 선택된 신경망 모델에 의해 상기 이전 프레임으로부터 추출한 특징에 기초한 템플릿 특징과 상기 현재 프레임을 크롭핑한 영상으로부터 추출한 특징 간의 유사도를 측정하며, 상기 유사도를 기초로 상기 현재 프레임을 크롭핑한 영상으로부터 추출한 특징에서 상기 템플릿 특징에 매칭되는 영역을 나타내는 상기 대상 객체의 바운딩 박스를 결정하는, 대상 객체를 추적하는 장치.
  18. 감지된 시각 정보에 기초하여 입력 영상을 생성하는 카메라;
    상기 입력 영상에 포함된 대상 객체에 대한 사용자의 선택을 입력받는 사용자 인터페이스; 및
    상기 입력 영상의 프레임들로부터 특징을 추출하고, 상기 프레임들 중 이전 프레임의 상기 특징에 포함된 상기 대상 객체의 특성 값을 기초로, 상기 특성 값의 범위에 따라 미리 구비된 복수의 신경망 모델들 중 어느 하나의 신경망 모델을 선택하며, 상기 선택된 신경망 모델을 기초로 생성된 현재 프레임에 포함된 상기 대상 객체의 바운딩 박스에 의해 상기 대상 객체를 추적하는 프로세서
    를 포함하는, 전자 장치.
  19. 제18항에 있어서,
    상기 프로세서는
    해당 프레임이 상기 프레임들 중 상기 대상 객체를 포함하는 첫 번째 프레임인 경우, 상기 첫 번째 프레임에서 사용자의 선택에 기초하여 크롭핑된 영역의 특징을 추출하고,
    해당 프레임이 상기 프레임들 중 상기 대상 객체를 포함하는 첫 번째 프레임이 아닌 경우, 상기 이전 프레임에서 생성된 바운딩 박스에 기초하여 크롭핑된 영역의 특징을 추출하는, 전자 장치.
  20. 제18항에 있어서,
    상기 프로세서는
    상기 선택된 신경망 모델에 의해 상기 현재 프레임을 크롭핑하고, 상기 선택된 신경망 모델에 의해 상기 이전 프레임으로부터 추출한 특징에 기초한 템플릿 특징과 상기 현재 프레임을 크롭핑한 영상으로부터 추출한 특징 간의 유사도를 측정하며, 상기 유사도를 기초로 상기 현재 프레임을 크롭핑한 영상으로부터 추출한 특징에서 상기 템플릿 특징에 매칭되는 영역을 나타내는 상기 대상 객체의 바운딩 박스를 결정하는, 전자 장치.

KR1020210034804A 2021-03-17 2021-03-17 대상 객체를 추적하는 방법과 장치 및 전자 장치 KR102637342B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210034804A KR102637342B1 (ko) 2021-03-17 2021-03-17 대상 객체를 추적하는 방법과 장치 및 전자 장치
US17/385,455 US11790541B2 (en) 2021-03-17 2021-07-26 Method and apparatus with target object tracking

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210034804A KR102637342B1 (ko) 2021-03-17 2021-03-17 대상 객체를 추적하는 방법과 장치 및 전자 장치

Publications (2)

Publication Number Publication Date
KR20220129905A true KR20220129905A (ko) 2022-09-26
KR102637342B1 KR102637342B1 (ko) 2024-02-16

Family

ID=83283838

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210034804A KR102637342B1 (ko) 2021-03-17 2021-03-17 대상 객체를 추적하는 방법과 장치 및 전자 장치

Country Status (2)

Country Link
US (1) US11790541B2 (ko)
KR (1) KR102637342B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024111795A1 (ko) * 2022-11-25 2024-05-30 삼성전자주식회사 이미지 프레임들 내에서 피사체를 크롭하기 위한 전자 장치 및 그 방법
WO2024117468A1 (ko) * 2022-12-02 2024-06-06 삼성전자주식회사 전자 장치 및 이의 제어 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09282460A (ja) * 1996-04-18 1997-10-31 Mitsubishi Electric Corp 自動目標認識装置
KR101912569B1 (ko) * 2018-07-11 2018-10-26 전북대학교산학협력단 비디오 영상에서의 물체 추적시스템
KR20190124600A (ko) * 2018-04-26 2019-11-05 한국전자통신연구원 신경망 학습에 기반한 적층형 다종 영상 객체 보호 장치, 시스템 및 방법
KR20200084467A (ko) * 2018-12-27 2020-07-13 건국대학교 산학협력단 회전 가능한 타원형 모델을 이용한 딥러닝 기반의 영상 내 객체 추적 장치 및 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11361857B2 (en) * 2013-06-26 2022-06-14 WellDoc, Inc. Systems and methods for creating and selecting models for predicting medical conditions
EP3311364B1 (en) 2015-09-30 2018-12-26 FotoNation Limited A method and system for tracking an object
CN109284749A (zh) 2017-07-19 2019-01-29 微软技术许可有限责任公司 精细化图像识别
US11367222B2 (en) 2018-04-20 2022-06-21 Hewlett-Packard Development Company, L.P. Three-dimensional shape classification and retrieval using convolutional neural networks and majority vote
US10387752B1 (en) 2019-01-22 2019-08-20 StradVision, Inc. Learning method and learning device for object detector with hardware optimization based on CNN for detection at distance or military purpose using image concatenation, and testing method and testing device using the same

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09282460A (ja) * 1996-04-18 1997-10-31 Mitsubishi Electric Corp 自動目標認識装置
KR20190124600A (ko) * 2018-04-26 2019-11-05 한국전자통신연구원 신경망 학습에 기반한 적층형 다종 영상 객체 보호 장치, 시스템 및 방법
KR101912569B1 (ko) * 2018-07-11 2018-10-26 전북대학교산학협력단 비디오 영상에서의 물체 추적시스템
KR20200084467A (ko) * 2018-12-27 2020-07-13 건국대학교 산학협력단 회전 가능한 타원형 모델을 이용한 딥러닝 기반의 영상 내 객체 추적 장치 및 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Luca Bertinetto 등, Fully-Convolutional Siamese Networks for Object Tracking, arXiv:1606.09549v2(2016.09.14.)* *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024111795A1 (ko) * 2022-11-25 2024-05-30 삼성전자주식회사 이미지 프레임들 내에서 피사체를 크롭하기 위한 전자 장치 및 그 방법
WO2024117468A1 (ko) * 2022-12-02 2024-06-06 삼성전자주식회사 전자 장치 및 이의 제어 방법

Also Published As

Publication number Publication date
US11790541B2 (en) 2023-10-17
KR102637342B1 (ko) 2024-02-16
US20220301188A1 (en) 2022-09-22

Similar Documents

Publication Publication Date Title
US11557085B2 (en) Neural network processing for multi-object 3D modeling
US11798271B2 (en) Depth and motion estimations in machine learning environments
JP7236545B2 (ja) ビデオターゲット追跡方法と装置、コンピュータ装置、プログラム
KR102400017B1 (ko) 객체를 식별하는 방법 및 디바이스
US11182909B2 (en) Scalable real-time hand tracking
US10664060B2 (en) Multimodal input-based interaction method and device
CN107704838B (zh) 目标对象的属性识别方法及装置
US11640518B2 (en) Method and apparatus for training a neural network using modality signals of different domains
CN111062981B (zh) 图像处理方法、装置及存储介质
CN113378770B (zh) 手势识别方法、装置、设备、存储介质
KR20220059194A (ko) 대상 객체에 적응적인 객체 추적 방법 및 장치
KR20220081261A (ko) 객체 포즈 추정 방법 및 장치
CN110807410B (zh) 关键点定位方法、装置、电子设备和存储介质
CN113449573A (zh) 一种动态手势识别方法及设备
KR102637342B1 (ko) 대상 객체를 추적하는 방법과 장치 및 전자 장치
JP7226696B2 (ja) 機械学習方法、機械学習システム及び非一時的コンピュータ可読記憶媒体
US20230153965A1 (en) Image processing method and related device
CN110141861B (zh) 控制方法、装置及终端
US20190096073A1 (en) Histogram and entropy-based texture detection
CN112862095A (zh) 基于特征分析的自蒸馏学习方法、设备以及可读存储介质
US11961249B2 (en) Generating stereo-based dense depth images
US20220180548A1 (en) Method and apparatus with object pose estimation
KR20220133567A (ko) 객체 추적 방법 및 장치
Putro et al. Multiple layered deep learning based real-time face detection
KR20220160388A (ko) 영상 유사도 산출 장치 및 방법

Legal Events

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