KR102348852B1 - 오브젝트를 추출하는 방법 및 이를 위한 장치 - Google Patents

오브젝트를 추출하는 방법 및 이를 위한 장치 Download PDF

Info

Publication number
KR102348852B1
KR102348852B1 KR1020210101680A KR20210101680A KR102348852B1 KR 102348852 B1 KR102348852 B1 KR 102348852B1 KR 1020210101680 A KR1020210101680 A KR 1020210101680A KR 20210101680 A KR20210101680 A KR 20210101680A KR 102348852 B1 KR102348852 B1 KR 102348852B1
Authority
KR
South Korea
Prior art keywords
information
content
specific object
image
user
Prior art date
Application number
KR1020210101680A
Other languages
English (en)
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 KR1020220001180A priority Critical patent/KR20230000932A/ko
Priority to KR1020220001178A priority patent/KR20230000931A/ko
Application granted granted Critical
Publication of KR102348852B1 publication Critical patent/KR102348852B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • 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
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0281Customer communication at a business location, e.g. providing product or service information, consulting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0623Item investigation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0641Shopping interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/50Extraction of image or video features by performing operations within image blocks; by using histograms, e.g. histogram of oriented gradients [HoG]; by summing image-intensity values; Projection analysis
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Health & Medical Sciences (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Health & Medical Sciences (AREA)
  • General Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Tourism & Hospitality (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • Human Resources & Organizations (AREA)
  • Primary Health Care (AREA)
  • Image Analysis (AREA)

Abstract

본 발명은 이미지 내에서 오브젝트를 추출하는 방법 및 이를 위한 장치에 관한 것이다.
또한 본 발명은 컨텐츠 내의 오브젝트를 추출하여 추출된 오브젝트에 대한 정보를 제공하는 방법 및 이를 위한 장치에 관한 것이기도 하다. 구체적으로, 사용자가 컨텐츠 내의 특정 오브젝트에 대한 정보를 원하는 경우, 특정 오브젝트에 대한 정보를 사용자에게 제공하는 방법 및 이를 위한 장치에 관한 것이다.

Description

오브젝트를 추출하는 방법 및 이를 위한 장치 {METHOD FOR EXTRACTING OBJECTS AND APPARATUS THEREFOR}
본 발명은 이미지 내에서 오브젝트를 추출하는 방법 및 이를 위한 장치에 관한 것이다.
또한 본 발명은 컨텐츠 내의 오브젝트를 추출하여 추출된 오브젝트에 대한 정보를 제공하는 방법 및 이를 위한 장치에 관한 것이기도 하다. 구체적으로, 사용자가 컨텐츠 내의 특정 오브젝트에 대한 정보를 원하는 경우, 특정 오브젝트에 대한 정보를 사용자에게 제공하는 방법 및 이를 위한 장치에 관한 것이다.
최근 멀티미디어 콘텐츠의 급증 및 cctv 등의 보안 장비의 보편화에 힘입어 방송 콘텐츠 및 cctv 녹화영상 등의 동영상을 대상으로하는 영상 인식 기술의 중요성이 증가하고 있다.
일반적으로, 동영상 기반 영상 인식 기술에는 정지 영상에 기반하는 기술과 연속적인 복수의 프레임 영상들에 기반하는 기술이 있다. 정지 영상에 기반하는 기술은 동영상을 프레임 단위의 정지 영상들로 나누고, 각 정지 영상에 이미지 기반 분석 기술을 적용하여 오브젝트를 검출하고 인식한다. 연속적인 복수의 프레임 영상에 기반하는 기술은 복수의 프레임 영상들을 기반으로 오브젝트의 움직임 특성을 모델링하여 움직이는 오브젝트를 검출하거나 특정 이벤트를 인식한다.
그러나, 시계 열 동작을 다수의 상태 모델 또는 연속적인 복수의 프레임 영상 모델의 복잡성과 과도한 연산량으로 인해 고속 인식에 한계가 존재한다. 나아가, CCTV 등을 이용하는 보안 분야의 영상 인식 기술은 배경이 고정된 동영상에서 이동 오브젝트를 분리 및 인식하는 기술을 제공하고 있지만, 특정 오브젝트를 검출하거나 이동 중인 카메라의 영상 또는 동적 배경에서 오브젝트를 분리하는데 한계가 있다.
또한 최근 정보통신 기술의 발달에 따라 사용자들이 사진이나 동영상 등 컨텐츠에 노출되는 경우가 많다. 이때, 사용자들은 컨텐츠 상의 특정 오브젝트에 대한 정보를 얻고 싶으나, 컨텐츠 상에서는 오브젝트에 대한 정보를 제공하지 않는다. 또한, 컨텐츠 뿐만 아니라, 일상 생활 중에서도 사용자들이 특정 오브젝트에 대한 정보를 얻고자 하는 경우가 있을 수 있다. 구체적으로, 사용자는 미디어 상 또는 일상 생활에서 접하는 특정 오브젝트(예를 들어, 전자제품, 옷, 가방 등)에 대한 정보를 원하는 경우가 있다.
하지만, 사용자가 특정 오브젝트에 대한 정보를 얻으려면, 인터넷 검색 등을 통해야 하고, 심지어는 인터넷 검색을 위한 키워드등을 정확히 입력하지 못하여 특정 물품에 대한 정보를 얻지 못하는 경우도 있다.
따라서, 사용자가 원하는 특정 오브젝트에 대한 정보를 정확히 제공하는 방법 및 이를 위한 장치에 대한 필요성이 대두되고 있다.
국내공개특허 10-2015-0005131 A (2015.01.14) 국내공개특허 10-2014-0122292 A (2014.10.20)
본 발명의 일 실시예는 통합 특징 벡터에 기초하여 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보에 포함된 오브젝트를 검출함으로써, 오브젝트의 정적인 특성 및 동적인 특성을 모두 고려하여 효과적으로 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보에 포함된 오브젝트를 검출하는 방법 및 장치를 제공할 수 있다.
또한 본 발명의 일 실시예는 통합 특징 벡터에 기초하여 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보에 포함된 오브젝트를 검출함으로써, 오브젝트의 정적인 특성 및 동적인 특성을 모두 고려하여 효과적으로 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보에 포함된 오브젝트를 검출하는 방법 및 장치를 제공할 수 있다.
또한 본 발명의 일 실시예는 정지 영상 기반 오브젝트 검출의 단순성과 계산 효율성 및 연속적인 복수의 프레임 영상 기반 오브젝트 검출의 고성능의 장점을 결합함으로써, 연산량을 효과적으로 감소시켜 고속으로 오브젝트를 검출하는 방법 및 장치를 제공할 수 있다.
또한 본 발명의 일 실시예는 정지 영상에 포함된 오브젝트의 영상 정보와 전체/부분 이동 및 변형 등의 오브젝트의 움직임 정보를 통합하여 활용함으로써, 일관된 움직임 패턴을 보이는 오브젝트를 높은 정확도로 검출하는 방법 및 장치를 제공할 수 있다.
또한 본 발명의 일 실시예는 프레임 영상에 기초한 오브젝트의 정적인 특성과 모션 벡터에 기초한 오브젝트의 동적인 특성을 모두 고려함으로써, 오브젝트를 촬영한 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보에서 나타날 수 있는 흐려짐(blurring)에 강인한 오브젝트 검출 방법을 제공할 수 있다.
또한 본 발명의 일 실시예는 컨텐츠 내 특정 오브젝트에 대한 정보를 제공하는 장치를 제공할 수 있다.
또한 본 발명의 일 실시예는 컨탠츠 내 특정 오브젝트에 대한 정보를 제공하는 서버의 동작 방법을 제공할 수 있다.
본 발명의 일 실시예는 프레임 영상과 모션 벡터에 기초하는 오브젝트 검출 방법 및 장치를 제안한다.
본 발명의 일 실시예에 따른 오브젝트 검출 방법은 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보로부터 프레임 영상 및 모션 벡터를 추출하는 단계; 상기 프레임 영상 및 모션 벡터에 기초하여 통합 특징 벡터를 생성하는 단계; 및 상기 통합 특징 벡터에 기초하여 상기 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보에 포함된 오브젝트를 검출하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 오브젝트 검출 방법에서 상기 통합 특징 벡터를 생성하는 단계는, 상기 프레임 영상의 통계적인 특성을 제1 특징 벡터로 추출하고, 상기 모션 벡터의 통계적인 특성을 제2 특징 벡터로 추출하는 단계; 및 상기 제1 특징 벡터 및 제2 특징 벡터를 결합함으로써 상기 통합 특징 벡터를 생성하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 오브젝트 검출 방법에서 상기 제1 특징 벡터 및 제2 특징 벡터를 추출하는 단계는, 상기 프레임 영상과 상기 모션 벡터를 복수의 블록들로 분할하고, 블록에 포함되는 프레임 영상에 기초하여 제1 특징 벡터를 추출하고, 블록에 포함되는 모션 벡터에 기초하여 제2 특징 벡터를 추출할 수 있다.
본 발명의 일 실시예에 따른 오브젝트 검출 방법에서 상기 제1 특징 벡터 및 제2 특징 벡터를 추출하는 단계는, 상기 프레임 영상에 포함된 픽셀의 밝기의 기울기에 기초하여 상기 제1 특징 벡터를 추출할 수 있다.
본 발명의 일 실시예에 따른 오브젝트 검출 방법에서 상기 제1 특징 벡터 및 제2 특징 벡터를 추출하는 단계는, 상기 프레임 영상에 포함된 픽셀의 밝기 레벨에 기초하여 상기 제1 특징 벡터를 추출할 수 있다.
본 발명의 일 실시예에 따른 오브젝트 검출 방법에서 상기 제1 특징 벡터 및 제2 특징 벡터를 추출하는 단계는, 상기 프레임 영상에 포함된 픽셀의 색상에 기초하여 상기 제1 특징 벡터를 추출할 수 있다.
본 발명의 일 실시예에 따른 오브젝트 검출 방법에서 상기 제1 특징 벡터 및 제2 특징 벡터를 추출하는 단계는, 상기 모션 벡터의 방향에 기초하여 상기 제2 특징 벡터를 추출할 수 있다.
본 발명의 일 실시예에 따른 오브젝트 검출 방법에서 상기 프레임 영상 및 모션 벡터를 추출하는 단계는, 상기 프레임 영상에 대응하는 기준 프레임을 복수의 블록들로 분할하고 블록마다 모션 벡터를 추출하여 모션 벡터 맵을 구성하고, 상기 모션 벡터 맵을 구성하는 블록의 크기를 균일화할 수 있다.
본 발명의 일 실시예에 따른 오브젝트 검출 방법에서 상기 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보에 포함된 오브젝트를 검출하는 단계는, 상기 통합 특징 벡터에 기초하여 상기 프레임 영상에 검출 대상 오브젝트가 포함되어 있는지 여부를 판별함으로써 상기 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보에 포함된 오브젝트를 검출할 수 있다.
본 발명의 일 실시예에 따른 오브젝트 검출 방법에서 상기 프레임 영상 및 모션 벡터를 추출하는 단계는, 상기 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보에 포함된 모션 벡터를 디코딩 과정에서 추출하거나, 상기 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보에 포함된 연속된 복수의 프레임 영상들에 기초하여 모션 벡터를 추출할 수 있다.
본 발명의 일 실시예에 따른 오브젝트 검출 장치는 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보로부터 프레임 영상 및 모션 벡터를 추출하는 추출부; 상기 프레임 영상 및 모션 벡터에 기초하여 통합 특징 벡터를 생성하는 특징 생성부; 및 상기 통합 특징 벡터에 기초하여 상기 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보에 포함된 오브젝트를 검출하는 오브젝트 검출부를 포함할 수 있다.
본 발명의 일 실시예에 따른 오브젝트 검출 장치에서 상기 특징 생성부는, 상기 프레임 영상의 통계적인 특성을 제1 특징 벡터로 추출하고, 상기 모션 벡터의 통계적인 특성을 제2 특징 벡터로 추출하며, 상기 제1 특징 벡터 및 제2 특징 벡터를 결합함으로써 상기 통합 특징 벡터를 생성할 수 있다.
본 발명의 일 실시예에 따른 오브젝트 검출 장치에서 상기 특징 생성부는, 상기 프레임 영상과 상기 모션 벡터를 복수의 블록들로 분할하고, 블록에 포함되는 프레임 영상에 기초하여 제1 특징 벡터를 추출하고, 블록에 포함되는 모션 벡터에 기초하여 제2 특징 벡터를 추출할 수 있다.
본 발명의 일 실시예에 따른 오브젝트 검출 장치에서 상기 특징 생성부는, 상기 프레임 영상에 포함된 픽셀의 밝기의 기울기에 기초하여 상기 제1 특징 벡터를 추출할 수 있다.
본 발명의 일 실시예에 따른 오브젝트 검출 장치에서 상기 특징 생성부는, 상기 프레임 영상에 포함된 픽셀의 밝기 레벨에 기초하여 상기 제1 특징 벡터를 추출할 수 있다.
본 발명의 일 실시예에 따른 오브젝트 검출 장치에서 상기 특징 생성부는, 상기 프레임 영상에 포함된 픽셀의 색상에 기초하여 상기 제1 특징 벡터를 추출할 수 있다.
본 발명의 일 실시예에 따른 오브젝트 검출 장치에서 상기 특징 생성부는, 상기 모션 벡터의 방향에 기초하여 상기 제2 특징 벡터를 추출할 수 있다.
본 발명의 일 실시예에 따른 오브젝트 검출 장치에서 상기 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보에 포함된 오브젝트를 검출하는 단계는, 상기 통합 특징 벡터에 기초하여 상기 프레임 영상에 검출 대상 오브젝트가 포함되어 있는지 여부를 판별함으로써 상기 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보에 포함된 오브젝트를 검출할 수 있다.
또한 본 발명의 일 실시예는 컨텐츠 내 특정 오브젝트에 대한 정보를 획득하기 위한 사용자 장치를 제공한다.
본 발명의 일 실시예에 따른 사용자 장치는 통신부; 및 상기 통신부와 기능적으로 연결되어 있는 프로세서를 포함하고, 상기 프로세서는, 하나 이상의 오브젝트들을 포함하는 컨텐츠를 획득하고, 상기 컨텐츠의 상기 하나 이상의 오브젝트들 중 특정 오브젝트를 추출하고, 상기 특정 오브젝트는 심층 신경망 또는 합성곱 신경망을 이용하여 기 학습된 학습 정보에 기초하여 추출되고, 상기 특정 컨텐츠를 식별하기 위한 식별 정보를 오브젝트 정보 제공 서버로 전송하고, 상기 오브젝트 정보 제공 서버로부터, 상기 특정 오브젝트에 대한 하나 이상의 정보를 수신하여 디스플레이하고, 상기 특정 오브젝트에 대한 하나 이상의 정보는, 상기 특정 오브젝트의 종류에 따라 상이하고, 상기 특정 오브젝트에 대한 하나 이상의 정보는, 상기 컨텐츠와 중첩되거나 팝업 형태로 디스플레이되는 것을 특징으로 한다.
상기 특정 오브젝트는, 상기 컨텐츠를 구성하는 픽셀들 각각에 대해 인접한 픽셀들의 픽셀 값들이 기 설정된 임계 값 이상이 되는 픽셀들에 기초하여 추출될 수 있다.
상기 기 설정된 임계 값은, 상기 컨텐츠를 구성하는 픽셀들의 픽셀 값들의 평균 값일 수 있다.
상기 특정 오브젝트에 대한 하나 이상의 정보는, 상기 특정 오브젝트가 인물인 경우, 인물명, 생년월일, 상기 인물이 착용한 아이템 및 상기 아이템의 구매처 중 적어도 어느 하나를 포함하고, 상기 특정 오브젝트가 사물인 경우, 모델명, 제조일자, 가격 및 상기 물건의 구매처 중 적어도 어느 하나를 포함할 수 있다.
상기 특정 오브젝트에 대한 하나 이상의 정보의 개수는, 사용자가 상기 오브젝트 정보 제공 서버에 결제한 금액에 의해 결정될 수 있다.
또한 본 발명의 일 실시예는 장치가 컨텐츠 내 특정 오브젝트에 대한 정보를 획득하기 방법에 있어서, 상기 장치가: 하나 이상의 오브젝트들을 포함하는 컨텐츠를 획득하는 단계; 상기 컨텐츠의 상기 하나 이상의 오브젝트들 중 특정 오브젝트를 추출하되, 상기 특정 오브젝트는 심층 신경망 또는 합성곱 신경망을 이용하여 기 학습된 학습 정보에 기초하여 추출하는 단계; 상기 특정 컨텐츠를 식별하기 위한 식별 정보를 오브젝트 정보 제공 서버로 전송하는 단계; 및 상기 특정 오브젝트에 대한 하나 이상의 정보를 수신하여 상기 오브젝트 정보 제공 서버로부터 디스플레이를 통하여 표시하는 단계; 를 포함하고, 상기 특정 오브젝트에 대한 하나 이상의 정보는, 상기 특정 오브젝트의 종류에 따라 상이하고, 상기 특정 오브젝트에 대한 하나 이상의 정보는, 상기 컨텐츠와 중첩되거나 팝업 형태로 표시되는 방법을 제안한다.
또한 본 발명의 일 실시예는 상기 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체를 제안한다.
또한 본 발명의 일 실시예는 상기 방법을 실행시키기 위해 컴퓨터 판독 가능한 기록 매체에 기록된 프로그램을 제안한다.
본 발명의 일 실시예는, 통합 특징 벡터에 기초하여 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보에 포함된 오브젝트를 검출함으로써, 오브젝트의 정적인 특성 및 동적인 특성을 모두 고려하여 효과적으로 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보에 포함된 오브젝트를 검출할 수 있다.
본 발명의 일 실시예는, 정지 영상 기반 오브젝트 검출의 단순성과 계산 효율성 및 연속적인 복수의 프레임 영상 기반 오브젝트 검출의 고성능의 장점을 결합함으로써, 연산량을 효과적으로 감소시켜 고속으로 오브젝트를 검출할 수 있다.
본 발명의 일 실시예는, 정지 영상에 포함된 오브젝트의 영상 정보와 전체/부분 이동 및 변형 등의 오브젝트의 움직임 정보를 통합하여 활용함으로써, 일관된 움직임 패턴을 보이는 오브젝트를 높은 정확도로 검출할 수 있다.
본 발명의 일 실시예는, 프레임 영상에 기초한 오브젝트의 정적인 특성과 모션 벡터에 기초한 오브젝트의 동적인 특성을 모두 고려함으로써, 오브젝트를 촬영한 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보에서 나타날 수 있는 흐려짐에 강인한 오브젝트 검출 방법을 제공할 수 있다.
사용자는 사용자가 원하는 컨텐츠 내의 특정 오브젝트에 대한 정보를 즉각적으로 제공받을 수 있다는 효과가 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 특정한 바람직한 실시예들의 상기에서 설명한 바와 같은 또한 다른 측면들과, 특징들 및 이득들은 첨부 도면들과 함께 처리되는 하기의 설명으로부터 보다 명백하게 될 것이다.
도 1은 본 발명의 일 실시예에 따른 오브젝트 검출 방법을 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따라 통합 특징 벡터를 생성하는 과정을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따라 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보로부터 통합 특징 벡터를 생성하는 예시를 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 오브젝트 검출 장치의 세부 구성을 나타낸 도면이다.
도 5은 본 발명의 일 실시예에 따른 컨텐츠 내 특정 오브젝트에 대한 정보를 제공하기 위한 시스템의 구성을 나타낸 도면이다.
도 6은 본 발명의 일 실시예에 따른 사용자 장치를 나타낸 블록도이다.
도 7은 본 발명의 일 실시예에 따른 컨텐츠 내 특정 오브젝트에 대한 정보를 제공하는 방법을 나타낸 도면이다.
도 8는 본 발명의 일 실시예에 따른 컨텐츠 내 특정 오브젝트에 대한 정보를 제공하는 방법을 나타낸 도면이다.
도 9는 본 발명의 일 실시에에 따른 컨텐츠 내 특정 오브젝트에 대한 정보를 제공하는 방법을 나타낸 흐름도이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
실시예를 설명함에 있어서 본 발명이 속하는 기술 분야에 익히 알려져 있고 본 발명과 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 발명의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다.
마찬가지 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시되었다. 또한, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 각 도면에서 동일한 또는 대응하는 구성요소에는 동일한 참조 번호를 부여하였다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이 때, 본 실시 예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(field-Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
본 발명의 실시예들을 구체적으로 설명함에 있어서, 특정 시스템의 예를 주된 대상으로 할 것이지만, 본 명세서에서 청구하고자 하는 주요한 요지는 유사한 기술적 배경을 가지는 여타의 통신 시스템 및 서비스에도 본 명세서에 개시된 범위를 크게 벗어나지 아니하는 범위에서 적용 가능하며, 이는 당해 기술분야에서 숙련된 기술적 지식을 가진 자의 판단으로 가능할 것이다.
본 발명에서 오브젝트 검출 장치, 오브젝트 정보 제공 서버, 및/또는 사용자 장치는 본 발명의 일 실시예에 따른 서비스(및/또는 기능)를 제공하는 온라인 플랫폼을 구현하는 어플리케이션(모바일앱) 및/또는 웹사이트(웹서비스)를 통하여 획득(및/또는 수신)되는 정보에 포함되는 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보로부터 오브젝트를 검출하거나 및/또는 검출된 오브젝트에 대한 정보를 사용자에게 제공하는 특징을 제안하려고 한다. 한편 이러한 기능을 구현하기 위한 명령어(커맨트)는 크롬 브라우저 내 확장프로그램, 스마트폰 어플리케이션, 및/또는 오큘러스 등 증강현실 장비용 소프트웨어의 형태로 구현될 수 있다.
또한 본 발명에서 오브젝트 검출 장치, 오브젝트 정보 제공 서버, 및/또는 사용자 장치는 본 발명의 일 실시예에 따른 차량 내부 및/또는 외부에 설치되는 카메라(및/또는 센서)에 의해 획득되는 이미지 및/또는 동영상으로부터 오브젝트를 검출하거나 및/또는 검출된 오브젝트에 대한 정보를 사용자에게 제공하는 특징을 제안하려고 한다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 오브젝트 검출 방법을 나타낸 도면이다.
본 발명의 일 실시예에 따른 오브젝트 검출 방법은 후술하는 오브젝트 검출 장치(400)에 구비된 프로세서(및/또는 제어부)에 의해 수행될 수 있다. 예를 들어, 오브젝트 검출 장치(400)는 이미지 및/또는 동영상에 포함된 오브젝트를 검출하는 장치로서, 소프트웨어 모듈, 하드웨어 모듈, 또는 이들의 조합으로 구현될 수 있다.
또한 상기 오브젝트 검출 장치(400)는 도 5의 오브젝트 정보 제공 서버(520) 및/또는 사용자 장치(530)로 구현될 수 있다. 즉, 오브젝트 검출 장치(400)는 스마트 폰, 테블릿 컴퓨터, 랩톱 컴퓨터, 데스크톱 컴퓨터, 텔레비전, 웨어러블 장치, 보안 시스템, 스마트 홈 시스템 등 다양한 컴퓨팅 장치 및/또는 시스템에 탑재될 수 있다. 또한 오브젝트 검출 장치(400)는 도 1 내지 도 9를 참조하여 설명되는 본 발명의 일 실시예에 따른 특징들이 오브젝트 정보 제공 서버(520) 및 사용자 장치(530) 각각에 의해 구현되거나, 오브젝트 정보 제공 서버(520) 및 사용자 장치(530)에 의해 함께 구현될 수도 있다.
단계(S110)에서, 오브젝트 검출 장치(400)는 이미지 및/또는 동영상으로부터 프레임 영상 및 모션 벡터를 추출한다. 정적 이미지는, 예를 들면, jpg, PNG 등의 확장자를 갖는 그림, 사진 중 적어도 어느 하나를 포함할 수 있다. 정적 이미지는, 예를 들면, GIF 등의 확장자를 갖는 동적인 그림, 사진 중 적어도 어느 하나를 포함할 수 있다. 동영상은 avi, mp4 등의 확장자를 갖는 스트림, 파일, 방송신호 등의 다양한 형태로 구성될 수 있다.
오브젝트 검출 장치(400)는 동영상으로부터 프레임 영상을 추출한다. 오브젝트 검출 장치는 동영상에 포함된 복수의 프레임 영상들을 추출함으로써 특정 프레임 영상을 추출할 수 있다.
오브젝트 검출 장치(400)는 동영상으로부터 모션 벡터를 추출한다. 일 예로, 오브젝트 검출 장치는 동영상을 디코딩하는 과정에서 동영상에 포함된 모션 벡터를 추출할 수 있다. 동영상에 포함된 모션 벡터는 동영상의 인코딩 과정에서 생성된 것일 수 있다.
다른 예로, 오브젝트 검출 장치(400)는 모션 벡터 연산 알고리즘을 이용하여 동영상으로부터 모션 벡터를 추출할 수 있다. 구체적으로, 오브젝트 검출 장치(400)는 동영상으로부터 추출된 연속적인 복수의 프레임 영상들로부터 광류(optical flow)를 계산할 수 있다. 오브젝트 검출 장치(400)는 계산된 광류에 기초하여 모션 벡터를 추출할 수 있다. 이 때, 오브젝트 검출 장치(400)는 기준 프레임을 복수의 블록들로 분할하고 해당 블록마다 모션 벡터를 추출함으로써 모션 벡터 맵을 생성할 수 있다. 기준 프레임은 영상 프레임에 대응하는 것으로, 모션 벡터를 추출하는 프레임을 나타낼 수 있다.
모션 벡터 맵을 구성하는 복수의 블록들의 크기는 일정하지 않을 수도 있다. 이 경우, 오브젝트 검출 장치(400)는 복수의 블록들의 크기 중에서 가장 작은 블록 크기로 모션 벡터 맵을 구성하는 복수의 블록들의 크기를 조절할 수 있다. 오브젝트 검출 장치(400)는 모션 벡터 맵을 구성하는 블록들의 크기를 균일화할 수 있다.
단계(S120)에서, 오브젝트 검출 장치(400)는 프레임 영상 및 모션 벡터에 기초하여 통합 특징 벡터를 생성한다. 오브젝트 검출 장치(400)는 프레임 영상으로부터 제1 특징 벡터를 추출하고 모션 벡터에 기초하여 제2 특징 벡터를 추출할 수 있다. 오브젝트 검출 장치(400)는 제1 특징 벡터 및 제2 특징 벡터에 기초하여 통합 특징 벡터를 생성할 수 있다.
일 예로, 오브젝트 검출 장치(400)는 프레임 영상과 모션 벡터를 복수의 블록들로 분할하고, 블록에 포함되는 프레임 영상으로부터 제1 특징 벡터를 추출하고 블록에 포함되는 모션 벡터로부터 제2 특징 벡터를 추출할 수 있다. 오브젝트 검출 장치는 해당 블록에서 추출된 제1 특징 벡터 및 제2 특징 벡터를 결합함으로써 해당 블록에 대응하는 통합 특징 벡터를 생성할 수 있다.
통합 특징 벡터를 생성하는 상세한 과정에 대해서는 도 2를 참조하여 후술한다.
단계(S130)에서, 오브젝트 검출 장치(400)는 통합 특징 벡터에 기초하여 이미지 및/또는 동영상에 포함된 오브젝트를 검출한다. 오브젝트 검출 장치는 통합 특징 벡터에 기초하여 프레임 영상에 검출 대상 오브젝트가 포함되어 있는지 여부를 판별함으로써 이미지 및/또는 동영상에 포함된 오브젝트를 검출할 수 있다. 검출 대상 오브젝트는 이미지 및/또는 동영상에 포함된 움직이는 오브젝트를 나타낼 수 있다. 검출 대상 오브젝트는 프레임 영상의 일부 영역에 포함될 수 있으며, 분할된 블록들 중 하나의 블록 또는 복수의 블록들에 포함될 수 있다.
오브젝트 검출 장치(400)는 소정의 기준에 따라 상이한 오브젝트 검출 모드로 동작할 수 있으며, 제1 오브젝트 검출 모드, 제2 오브젝트 검출 모드, 또는 제3 오브젝트 검출 모드 중 어느 하나로 설정(및/또는 동작)될 수 있다. 예를 들면, 오브젝트 검출 장치(400)는 외부로부터 수신된 및/또는 상기 오브젝트 검출 장치(400)에 저장된 이미지 및/또는 동영상에 소정의 식별자를 결합시켜 이미지 정보 및/또는 동영상 정보를 생성할 수 있으며, 이때 소정의 식별자는 상기 이미지 및/또는 동영상이 생성된(및/또는 촬영된) 시간을 나타내는 정보, 상기 이미지 및/또는 동영상의 크기, 상기 이미지 및/또는 동영상에 포함된 검출 대상 오브젝트의 개수를 나타내는 정보, 상기 이미지 및/또는 동영상에 포함되는 RGB(red-green-blue) 값들의 가지 수(number of branches)를 나타내는 정보 등일 수 있다.
이때 상기 이미지 및/또는 동영상에 포함된 검출 대상 오브젝트의 개수를 나타내는 정보는, 상기 이미지 및/또는 동영상을 촬영한(및/또는 생성한) 장치(및/또는 단말, 카메라 등)에 사용자가 직접 입력한 정보이거나 상기 이미지 및/또는 동영상을 촬영한(및/또는 생성한) 장치(및/또는 단말, 카메라 등) 자체에서 소정의 오브젝트 추출 알고리즘을 이용하여 먼저 상기 이미지 및/또는 동영상 내에 포함되는 오브젝트의 개수 정도만 먼저 파악하여 입력(및/또는 생성)시킨 정보일 수 있다.
이때 소정의 오브젝트 추출 알고리즘은 로지스틱 회귀분석(Logistic Regression), SVM(Support Vector Machine), Latent SVM(Latent Support Vector Machine), 가변 부분 모델(deformable part model), HOG(Histogram of Oriented Gradient), Haar-like feature, Co-occurrence HOG, LBP(local binary pattern), FAST(features from accelerated segment test) 등을 포함할 수 있다.
또한 상기 이미지 및/또는 동영상에 포함되는 RGB(red-green-blue) 값들의 가지 수(number of branches)를 나타내는 정보(줄여서 'RGB 가지수 정보'라 칭할 수 있다)는, 예를 들면, 상기 이미지 및/또는 동영상에서 상기 오브젝트 검출 장치(400)(및/또는 프로세서)에 의해 식별(및/또는 확인)되는 상기 이미지 및/또는 동영상의 RGB 값이 FFFFCC, FFCC99, FFCC33, FFCCFF, FF66FF일 경우, 상기 이미지 및/또는 동영상에 포함되는 RGB 값들의 가지 수(number of branches)는 '5'일 것이다. 다른 예로, 상기 이미지 및/또는 동영상의 RGB 값이 33FFFF, 33CCCC, 339999, 336633, 0066FF, 777777, 666666, 330000, 330033, 660066, 6600CC 일 경우, 상기 이미지 및/또는 동영상에 포함되는 RGB 값들의 가지 수(number of branches)는 '11'일 것이다.
한편 오브젝트 검출 장치(400)가 소정의 기준에 따라 상이한 오브젝트 검출 모드로 동작하는 것과 관련하여, 이하 다시 설명한다.
일 예로, 상기 이미지 정보 및/또는 동영상 정보가 검출 대상 오브젝트가 단일 오브젝트임을 나타내고, 상기 RGB 가지수 정보가 소정의 임계치(예; 0~150 사이의 정수값)보다 높은 값을 나타내는 경우, 오브젝트 검출 장치(400)는 제1 오브젝트 검출 모드로 동작하거나 제1 오브젝트 검출 모드로 설정될 수 있다. 제1 오브젝트 검출 모드로 동작하거나 제1 오브젝트 검출 모드로 설정된 오브젝트 검출 장치(400)는 로지스틱 회귀분석(Logistic Regression), SVM(Support Vector Machine), Latent SVM(Latent Support Vector Machine) 등의 다양한 인식기들을 이용하여 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보에 포함된 오브젝트를 검출함으로써 오브젝트 정보를 생성(및/또는 획득)할 수 있다.
다른 예로, 상기 이미지 정보 및/또는 동영상 정보가 검출 대상 오브젝트가 단일 오브젝트임을 나타내고, 상기 RGB 가지수 정보가 상기 소정의 임계치(예; 0~150 사이의 정수값) 이하의 값을 나타내는 경우, 오브젝트 검출 장치(400)는 제2 오브젝트 검출 모드로 동작하거나 제2 오브젝트 검출 모드로 설정될 수 있다. 제2 오브젝트 검출 모드로 동작하거나 제2 오브젝트 검출 모드로 설정된 오브젝트 검출 장치(400)는 가변 부분 모델(deformable part model)에서 이미지 부분 모델을 이미지-모션 혼합 특징 기반 부분 모델로 대체함으로써, 규칙적인 움직임을 보이는 오브젝트에 대한 모델링을 수행하여 이동 중인 오브젝트와 배경을 분리시킬 수 있다. 그래서, 오브젝트 검출 장치는, 예를 들어 회전하는 자동차 바퀴, 걷고 있는 사람의 다리 등의 규칙적인 움직임을 보이는 오브젝트를 검출함으로써 오브젝트 정보를 생성(및/또는 획득)할 수 있다.
또 다른 예로, 상기 이미지 정보 및/또는 동영상 정보가 검출 대상 오브젝트가 복수의 오브젝트임을 나타내는 경우(이때는 상기 RGB 가지수 정보와 상기 소정의 임계치 사이의 비교를 고려하지 않음), 오브젝트 검출 장치(400)는 제3 오브젝트 검출 모드로 동작하거나 제3 오브젝트 검출 모드로 설정될 수 있다. 제3 오브젝트 검출 모드로 동작하거나 제3 오브젝트 검출 모드로 설정된 오브젝트 검출 장치(400)는 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보에 포함된 오브젝트를 추출하여 오브젝트 정보를 획득할 수 있다. 제3 오브젝트 검출 모드로 동작하거나 제3 오브젝트 검출 모드로 설정된 오브젝트 검출 장치(400)오브젝트 검출 장치(400)는 HOG(Histogram of Oriented Gradient), Haar-like feature, Co-occurrence HOG, LBP(local binary pattern), FAST(features from accelerated segment test) 등과 같은 오브젝트 특징 추출을 위한 다양한 알고리즘을 통하여, 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보에 포함된 오브젝트의 윤곽선 또는 상기 오브젝트에서 추출할 수 있는 글씨(또는 정보를 나타내는 윤곽선(또는 외형))를 획득할 수 있다. 또한 제3 오브젝트 검출 모드로 동작하거나 제3 오브젝트 검출 모드로 설정된 오브젝트 검출 장치(400)는 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보에 포함된 오브젝트를 영상 분석을 통해 인식(또는 식별)하고, 상기 인식된 오브젝트에 대응되는 영역을 마스킹 처리하여 마스킹 영상 정보를 생성할 수 있다. 이때, 마스킹 처리 과정은, 예를 들면, 차분영상 방법, GMM(Gaussian Mixture Models)을 이용하는 MOG(Model of Gaussian) 알고리즘, 코드북(Codebook) 알고리즘 등과 같은 오브젝트와 배경을 분리하기 위한 배경 모델링을 통해 오브젝트에 해당하는 오브젝트 후보 영역을 추출하는 방법을 이용함으로써 오브젝트 정보를 추출 및/또는 획득할 수 있다.
도 2는 본 발명의 일 실시예에 따라 통합 특징 벡터를 생성하는 과정을 설명하기 위한 도면이다.
오브젝트 검출 장치에 의해 수행되는 단계(S120)는 다음과 같이 세분화될 수 있다.
단계(S121)에서, 오브젝트 검출 장치는 프레임 영상으로부터 제1 특징 벡터를 추출하고, 모션 벡터로부터 제2 특징 벡터를 추출할 수 있다. 오브젝트 검출 장치는 프레임 영상의 통계적인 특성을 제1 특징 벡터로 추출하고, 모션 벡터의 통계적인 특성을 제2 특징 벡터로 추출할 수 있다.
오브젝트 검출 장치는 프레임 영상과 모션 벡터를 복수의 블록들로 분할할 수 있다. 오브젝트 검출 장치는 분할된 블록들마다 해당 블록에 대응하는 제1 특징 벡터 및 제2 특징 벡터를 추출함으로써 해당 블록에 대응하는 통합 특징 벡터를 생성할 수 있다.
일 예로, 오브젝트 검출 장치는 프레임 영상에 포함된 픽셀의 밝기의 기울기에 기초하여 제1 특징 벡터를 추출할 수 있다. 오브젝트 검출 장치는 픽셀의 밝기의 기울기에 대한 히스토그램에 기초하여 제1 특징 벡터를 추출할 수 있다.
다른 예로, 오브젝트 검출 장치는 프레임 영상에 포함된 픽셀의 밝기 레벨에 기초하여 제1 특징 벡터를 추출할 수 있다. 오브젝트 검출 장치는 픽셀의 밝기 레벨에 대한 히스토그램에 기초하여 제1 특징 벡터를 추출할 수 있다.
또 다른 예로, 오브젝트 검출 장치는 프레임 영상에 포함된 픽셀의 색상에 기초하여 제1 특징 벡터를 추출할 수 있다. 오브젝트 검출 장치는 픽셀의 색상에 대한 히스토그램에 기초하여 제1 특징 벡터를 추출할 수 있다.
일 예로, 오브젝트 검출 장치는 모션 벡터의 방향에 기초하여 제2 특징 벡터를 추출할 수 있다. 오브젝트 검출 장치는 분할된 블록에 대응하는 적어도 하나의 모션 벡터의 방향에 대한 히스토그램에 기초하여 제2 특징 벡터를 추출할 수 있다. 예를 들어, 분할된 블록에 포함된 모션 벡터가 복수인 경우, 오브젝트 검출 장치는 해당 블록에 포함된 모션 벡터를 합산하여 도출된 벡터 방향에 기초하여 제2 특징 벡터를 추출할 수 있다.
단계(S122)에서, 오브젝트 검출 장치는 제1 특징 벡터 및 제2 특징 벡터를 결합함으로써 통합 특징 벡터를 생성할 수 있다. 통합 특징 벡터는 제1 특징 벡터와 제2 특징 벡터를 모두 고려하는 특징 벡터를 의미할 수 있다. 통합 특징 벡터를 이용함으로써, 오브젝트 검출 장치는 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보에 포함된 오브젝트의 정적인 특성과 동적인 특성을 모두 고려하여 오브젝트를 검출할 수 있다.
도 3은 본 발명의 일 실시예에 따라 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보로부터 통합 특징 벡터를 생성하는 예시를 나타낸 도면이다.
본 발명의 일 실시예에 따라 도 3에 도시된 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보에는 삼각형 오브젝트와 원형 오브젝트가 포함될 수 있다. 도 3은 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보에서 삼각형 오브젝트는 아래로 이동하고, 원형 오브젝트는 왼쪽 상단으로 이동하는 상황을 가정한다. 도 3에 도시된 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보에서 실선은 점선보다 일정 시간이 지난 후의 오브젝트를 나타낼 수 있다.
오브젝트 검출 장치는 동영상으로부터 프레임 영상을 추출할 수 있다. 오브젝트 검출 장치는 동영상에 포함된 시간적으로 연속된 복수의 프레임 영상들을 추출함으로써 특정 프레임 영상을 추출할 수 있다. 오브젝트 검출 장치는 추출된 프레임 영상에 기초하여 동영상에 포함된 오브젝트를 정적으로 분석할 수 있다.
오브젝트 검출 장치는 동영상으로부터 모션 벡터를 추출할 수 있다. 일 예로, 오브젝트 검출 장치는 동영상의 인코딩 과정에서 생성된 모션 벡터를 동영상으로부터 추출할 수 있다. 다른 예로, 오브젝트 검출 장치는 동영상에 포함된 시간적으로 연속적인 복수의 프레임 영상들로부터 모션 벡터를 추출할 수 있다. 이 때, 오브젝트 검출 장치는 광류 계산 등과 같은 모션 벡터 연산 알고리즘을 이용하여 모션 벡터를 추출할 수 있다. 오브젝트 검출 장치는 기준 프레임을 복수의 블록들로 분할하고, 블록에 대응하는 모션 벡터를 개별적으로 추출할 수 있다.
예를 들어, 오브젝트 검출 장치는 해당 블록에 대응하는 영상의 색상의 차에 기초하여 해당 블록에 대응하는 모션 벡터를 추출할 수 있다. 오브젝트 검출 장치는 해당 블록에 대응하는 현재 영상과 이전 영상을 서로 비교하고, 두 영상 간의 색상 차이가 미리 정해진 값보다 큰 경우 색상 차이가 나타나는 부분을 중심으로 기준 오브젝트를 식별하며 기준 오브젝트의 움직임에 대한 모션 벡터를 계산함으로써, 해당 블록의 모션 벡터를 추출할 수 있다. 오브젝트 검출 장치는 추출된 모션 벡터를 이용하여 모션 벡터 맵을 구성할 수 있다. 모션 벡터 맵을 구성하는 블록의 크기가 일정하지 않는 경우, 오브젝트 검출 장치는 가장 작은 블록 크기를 기준으로 모션 벡터 맵에 포함된 블록들을 균일화할 수 있다.
오브젝트 검출 장치는 모션 벡터에 기초하여 동영상에 포함된 오브젝트를 동적으로 분석할 수 있다.
오브젝트 검출 장치는 추출된 프레임 영상으로부터 제1 특징 벡터를 추출할 수 있다. 오브젝트 검출 장치는 프레임 영상을 복수의 블록들로 분할하고, 블록에 대응하는 프레임 영상에 기초하여 해당 블록에 대한 제1 특성 벡터를 추출할 수 있다. 일 예로, 블록에 대한 제1 특성 벡터는 해당 블록에 포함된 픽셀의 밝기의 기울기에 대한 히스토그램에 기초하여 추출될 수 있다. 다른 예로, 블록에 대한 제1 특성 벡터는 해당 블록에 포함된 픽셀의 밝기 레벨에 대한 히스토그램에 기초하여 추출될 수 있다. 또 다른 예로, 블록에 대한 제1 특성 벡터는 해당 블록에 포함된 픽셀의 색상에 대한 히스토그램에 기초하여 추출될 수 있다.
오브젝트 검출 장치는 추출된 모션 벡터로부터 제2 특징 벡터를 추출할 수 있다. 오브젝트 검출 장치는 프레임 영상의 블록과 동일한 크기의 블록을 기준으로 제2 특징 벡터를 추출할 수 있다. 오브젝트 검출 장치는 프레임 영상을 분할하는 블록과 동일한 크기의 블록 내에 포함되는 적어도 하나의 모션 벡터의 방향에 대한 히스토그램에 기초하여 해당 블록에 대응하는 제2 특징 벡터를 추출할 수 있다.
오브젝트 검출 장치는 제1 특징 벡터와 제2 특징 벡터를 결합함으로써 통합 특징 벡터를 생성할 수 있다. 이 때, 제1 특징 벡터에 대응하는 블록과 제 2 특징 벡터에 대응하는 블록은 동일한 크기를 가질 수 있다. 오브젝트 검출 장치는 블록을 기준으로 해당 블록에 대응하는 제1 특징 벡터와 제2 특징 벡터를 결합할 수 있다. 다시 말해, 오브젝트 검출 장치는 영역별로 통합 특징 벡터를 생성할 수 있다.
도 4는 본 발명의 일 실시예에 따른 오브젝트 검출 장치의 세부 구성을 나타낸 도면이다.
도 4를 참조하면, 오브젝트 검출 장치(400)는 추출부(410), 특징 생성부(420) 및 오브젝트 검출부(430)를 포함한다. 오브젝트 검출 장치(400)는 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보에 포함된 오브젝트를 검출하는 장치를 나타낸다. 오브젝트 검출 장치(400)는 소프트웨어 모듈, 하드웨어 모듈, 또는 이들의 조합으로 구현될 수 있다. 오브젝트 검출 장치(400)는 스마트 폰, 테블릿 컴퓨터, 랩톱 컴퓨터, 데스크톱 컴퓨터, 텔레비전, 웨어러블 장치, 보안 시스템, 스마트 홈 시스템 등 다양한 컴퓨팅 장치 및/또는 시스템에 탑재될 수 있다.
추출부(410)는 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보로부터 프레임 영상 및 모션 벡터를 추출할 수 있다. 추출부(410)는 동영상에 포함된 시간적으로 연속되는 복수의 프레임 영상들을 추출함으로써 특정 프레임 영상을 추출할 수 있다.
추출부(410)는 동영상의 인코딩 과정에서 생성된 모션 벡터를 동영상으로부터 추출할 수 있다. 또는, 추출부(410)는 동영상에 포함된 시간적으로 연속되는 복수의 프레임 영상들에 기초하여 모션 벡터를 추출할 수 있다.
예를 들어, 도 4에서는 추출부(410)에서 프레임 영상 및 모션 벡터가 모두 추출되는 것으로 도시되어 있으나, 이는 하나의 실시예에 불과할 뿐 추출부(410)의 실시예를 제한하지 않는다. 즉, 오브젝트 검출 장치(400)는 동영상으로부터 프레임 영상을 추출하는 프레임 영상 추출부, 동영상으로부터 모션 벡터를 추출하는 모션 벡터 추출부를 독립적으로 포함할 수도 있다.
특징 생성부(420)는 프레임 영상 및 모션 벡터에 기초하여 통합 특징 벡터를 생성한다. 특징 생성부(420)는 프레임 영상을 복수의 블록들로 분할하고 블록에 포함되는 프레임 영상에 기초하여 해당 블록에 대응하는 제1 특징 벡터를 추출할 수 있다. 특징 생성부(420)는 프레임 영상의 통계적인 특성을 제1 특징 벡터로 추출할 수 있다.
일 예로, 특징 생성부(420)는 블록에 대응하는 프레임 영상에 포함된 픽셀의 밝기의 기울기에 기초하여 해당 블록에 대응하는 제1 특징 벡터를 추출할 수 있다. 다른 예로, 특징 생성부(420)는 블록에 대응하는 프레임 영상에 포함된 픽셀의 밝기 레벨에 기초하여 해당 블록에 대응하는 제1 특징 벡터를 추출할 수 있다. 또 다른 예로, 특징 생성부(420)는 블록에 대응하는 프레임 영상에 포함된 픽셀의 색상에 기초하여 해당 블록에 대응하는 제1 특징 벡터를 추출할 수 있다.
특징 생성부(420)는 모션 벡터를 복수의 블록들로 분할하고 블록에 포함되는 모션 벡터에 기초하여 해당 블록에 대응하는 제2 특징 벡터를 추출할 수 있다. 특징 생성부(420)는 모션 벡터의 통계적인 특성을 제2 특징 벡터로 추출할 수 있다. 예를 들어, 특징 생성부(420)는 블록에 포함된 적어도 하나의 모션 벡터의 방향에 기초하여 제2 특징 벡터를 추출할 수 있다. 여기서, 모션 벡터를 분할하는 블록은 프레임 영상을 분할하는 블록과 크기가 동일할 수 있다.
오브젝트 검출부(430)는 통합 특징 벡터에 기초하여 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보에 포함된 오브젝트를 검출한다. 오브젝트 검출부(430)는 통합 특징 벡터에 기초하여 프레임 영상에 검출 대상 오브젝트가 포함되어 있는지 여부를 판별함으로써 이미지, 동영상, 이미지 정보, 및/또는 동영상 정보에 포함된 오브젝트를 검출할 수 있다.
본 발명에 적용될 수 있는 기술들 중 일부는 본 발명의 개념이 모호해지는 것을 피하기 위해 생략될 수 있다. 이러한 생략된 구성들은 "Histograms of oriented gradients for human detection", "Object Detection with Discriminatively Trained Part Based Models"을 참조하여 본 발명에 적용될 수 있다.
도 5은 본 발명의 일 실시예에 따른 특정 컨텐츠 내 오브젝트에 대한 정보를 제공하기 위한 시스템의 구성을 나타낸 도면이다.
도 5을 참조하면, 본 발명에 따른 특정 컨텐츠 내 오브젝트에 대한 정보를 제공하기 위한 시스템은 통신망(510)을 통해서 연결되는 오브젝트 정보 제공 서버(520)와 사용자 장치(530)를 포함하여 구성될 수 있다.
여기서, 통신망(510)은 오브젝트 정보 제공 서버(520)와 사용자 장치(530)가 접근 가능한 유/무선 통신망일 수 있다. 또한 통신망(510)은 단말들 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 통신망(510)의 예로는 인터넷(Internet), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), 3G, LTE(Long Term Evolution), WiFi(Wireless Fidelity), WiMAX(World Interoperability for Microwave Access), WiGig(Wireless Gigabit) 등이 포함되나 이에 한정되지는 않는다.
오브젝트 정보 제공 서버(520)는 본 발명에 따른 컨텐츠 내 사용자가 원하는 특정 오브젝트에 대한 정보를 통신망(510)을 통해 사용자 장치(530)에 제공하는 기능을 수행할 수 있다. 또한, 오브젝트 정보 제공 서버(520)는, 사용자 장치(530)에 컨텐츠를 제공할 수 있고, 제공되는 컨텐츠 내에 포함되는 오브젝트들에 대한 정보를 제공할 수 있다. 오브젝트 정보 제공 서버(520)는 통신망(510)을 통해 사용자 장치(530)로부터 수신한 오브젝트를 식별하여 사용자에게 오브젝트에 대한 정보를 제공할수 있는데, 이때 오브젝트에 대한 정보는 외부로부터 제공받을 수 있다. 예를 들어, 포털 사이트로부터 오브젝트에 대한 정보를 제공받을 수 있다.
사용자 장치(530)는 본 발명에 따른 외부로부터 컨텐츠를 제공받거나 사용자로부터 컨텐츠를 제공받아 디스플레이하는 기능을 수행할 수 있다. 더하여, 사용자는 사용자 장치(530)를 통해 상기 컨텐츠 내 특정 오브젝트를 선택할 수 있다. 사용자 장치(530)는 사용자에 의해 선택된 특정 오브젝트를 통신망(510)을 통해 오브젝트 정보 제공 서버(520)로 전송할 수 있다. 사용자 장치(530)는 선택된 특정 오브젝트에 대한 정보를 통신망(510)을 통해 오브젝트 정보 제공 서버(520)로부터 수신하고, 수신한 특정 오브젝트에 대한 정보를 디스플레이하여 사용자에게 제공할 수 있다. 이때, 사용자에게 제공되는 특정 오브젝트에 대한 정보는 사용자가 선택한 특정 오브젝트에 따라 달라질 수 있고, 사용자에 따라 특정 오브젝트에 대한 정보의 일부만이 제공될 수도 있다. 사용자 장치(530)는 구체적으로, 통신 가능한 데스크탑 컴퓨터(desktop computer), 랩탑 컴퓨터(laptop computer), 노트북(notebook), 스마트폰(smart phone), 태블릿 PC(tablet PC), 모바일폰(mobile phone), 스마트 워치(smart watch), 스마트 글래스(smart glass), e-book 리더기, PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 디지털 카메라(digital camera), DMB(digital multimedia broadcasting) 재생기, 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), PDA(Personal Digital Assistant), 전방 표시 장치(Head Up Display,HUD) 등일 수 있다. 또한, 사용자 장치(530)는, 사용자가 정보를 얻기 원하는 특정 오브젝트에 대한 이미지를 획득하기 위한 카메라(camera)를 포함할 수 있다. 즉, 사용자는 정보를 얻기 원하는 특정 오브젝트에 대한 이미지를 사용자 장치(530)를 통해 획득할 수 있다. 사용자는 사용자 장치(530)와 통신망(510)을 통해 연결된 오브젝트 정보 제공 오브젝트 정보 제공 서버(520)에 획득된 이미지를 전송하고, 오브젝트 정보 제공 오브젝트 정보 제공 서버(520)로부터 획득된 이미지 내의 특정 오브젝트에 대한 정보를 제공받을 수 있다.
도 6은 본 발명의 일 실시예에 따른 사용자 장치를 나타낸 블록도이다.
도 6을 참조하면 본 발명의 일 실시예에 따른 사용자 장치(530)는, 디스플레이부(610), 저장부(620), 통신부(630), 오브젝트 추출부(640) 및 입력부(650)를 포함하여 구성될 수 있다. 본 명세서에서의 사용자 장치를 구성하는 디스플레이부(610), 저장부(620), 통신부(630), 오브젝트 추출부(640) 및 입력부(650)는 전부 또는 일부가 프로세서로 기술될 수 있다. 예를 들어 사용자 장치는 통신부(630) 및 프로세서(디스플레이부(610), 저장부(620), 오브젝트 추출부(640) 및 입력부(650))로 구성될 수 있고, 이때 프로세서와 통신부는 서로 기능적으로 연결될 수 있다.
디스플레이부(610)는, 컨텐츠를 디스플레이하고, 컨텐츠 내에 포함된 특정 오브젝트에 대한 정보를 오브젝트 정보 제공 서버(520)로부터 수신하여 디스플레이하는 기능을 수행할 수 있다. 예를 들어, 디스플레이부(610)는 사용자의 기 저장된 컨텐츠 등을 디스플레이할 수 있고, 사용자가 직접 실시간으로 촬영한 컨텐츠 등을 디스플레이할 수 있고, 외부로부터 실시간으로 수신되는 컨텐츠 등을 디스플레이할 수 있다. 이때, 컨텐츠는 동영상, 이미지(사진), 오디오(음성) 등일 수 있다.
저장부(620)는, 사용자가 기 저장한 각종 컨텐츠를 저장하는 기능을 수행할 수 있다. 또한, 저장부(620)는, 사용자가 선택한 컨텐츠 내에 포함된 특정 오브젝트에 대한 정보를 저장하는 기능을 수행할 수 있다.
통신부(630)는, 도 5에서 설명한 통신망(510)을 통해 사용자 장치(530)와 오브젝트 정보 제공 서버(520)간 통신을 수행할 수 있다. 즉, 사용자가 컨텐츠 내에서 선택한 특정 오브젝트를 오브젝트 정보 제공 서버(520)로 전송할 수 있고, 특정 오브젝트에 대한 정보를 오브젝트 정보 제공 서버(520)로부터 수신할 수 있다. 또한, 특정 오브젝트에 대한 정보에 인터넷 링크가 포함되는 경우, 사용자 장치(530)를 인터넷 링크에 접속하게하는 기능을 수행할 수 있다.
오브젝트 추출부(640)는, 저장부(620)에 기 저장된 컨텐츠 또는 사용자가 직접 촬영한 컨텐츠 내에 포함되는 오브젝트를 추출할 수 있다. 오브젝트 추출부(640)는 심층 신경망(Deep Neural Network, DNN) 또는 합성곱 신경망(Convolutional Neural Network, CNN)을 이용하여 기 학습된 정보에 기초하여 오브젝트를 추출할 수 있다. 오브젝트 추출부(640)를 통해 추출된 오브젝트들을 표시하기 위해 별도의 바운딩 박스가 컨텐츠 상에 중첩되어 표시될 수 있다. 예를 들어, 컨텐츠 내에 하나 이상의 오브젝트들이 존재하는 경우, 바운딩 박스는 각 오브젝트들마다 할당될 수 있다. 또한, 별도의 바운딩 박스는 컨텐츠 내에 표시되지 않고 투명한 상태로 존재할 수도 있다. 컨텐츠가 영상 또는 이미지인 경우, 컨텐츠 내에 포함되는 오브젝트를 추출하기 위해 픽셀 값을 이용할 수 있다. 즉, 오브젝트 추출부(640)는, 컨텐츠의 각 픽셀들 간 유사도에 기초하여 특정 오브젝트를 추출할 수 있다. 구체적으로, 오브젝트를 추출하기 위해서는 영상 또는 이미지 내에서 배경과 오브젝트가 분리되어야하는데, 배경은 배경에 해당되는 픽셀들끼리, 오브젝트는 오브젝트에 해당하는 픽셀들끼리 각 픽셀의 픽셀 값이 유사한 경우가 많다. 따라서, 오브젝트 추출부(640)는 영상 또는 이미지의 모든 픽셀들의 픽셀 값을 구하고, 인접한 픽셀들의 픽셀 값들의 차이가 기 설정된 임계 값 이상이 되는 픽셀들에 기초하여 오브젝트를 추출할 수 있다. 인접한 픽셀은, 현재 픽셀의 상측, 하측, 좌측, 우측에 있는 픽셀을 의미할 수 있다. 다시 말하면 컨텐츠 내의 각 픽셀들마다 해당 각 픽셀에 인접한 픽셀들과의 픽셀 값 차이들을 계산하고, 픽셀 값 차이들이 기 설정된 임계 값 이상이 될 때, 해당 픽셀들의 집합이 상술한 바운딩 박스가 될 수 있다. 이때, 기 설정된 임계 값은 영상 또는 이미지의 모든 픽셀들의 픽셀 값의 평균에 해당하는 값일 수 있다.
본 명세서에서 기술하는 픽셀 값은, 각 픽셀의 밝기를 나타내는 값일 수 있다. 예를 들어, 컨텐츠가 흑백인 경우, 픽셀 값은 0 내지 255의 값들 중 어느 하나가 될 수 있다. 픽셀 값이 0인 경우, 가장 어두운 상태(즉, 검은색)을 의미하고, 픽셀 값이 255인 경우, 가장 밝은 상태(즉, 흰색)을 의미할 수 있다.
또 다른 예로, 컨텐츠가 흑백이 아닌 컬러 컨텐츠인 경우, 각 픽셀은 적색(Red, R), 녹색(Green, G), 청색(Blue, B)의 세가지 색상이 혼합된 색으로 표현될 수 있다. 각 픽셀의 픽셀 값은 R에 해당하는 값, G에 해당하는 값, B에 해당하는 값 각각으로 구성될 수 있다. R, G, B에 해당하는 값은 각각 0 내지 255의 값들 중 어느 하나의 값을 가질 수 있다. R에 해당하는 값이 0인 경우, 검은 색을 의미하고, 255인 경우 적색 자체(즉, 원색)을 의미할 수 있다. G, B에 해당하는 값도 마찬가지이다. 상술한 픽셀 값 차이는 각 픽셀들의 R, G, B에 해당하는 값 각각에 대해 계산될 수 있다. 다시 말하면 인접한 픽셀들의 픽셀 값들의 차이는 R에 해당하는 값, G에 해당하는 값, B에 해당하는 값 각각 계산될 수 있다. 또한, 모든 픽셀들의 픽셀 값의 평균은 모든 픽셀들의 R에 해당하는 값에 대한 평균, G에 해당하는 값에 대한 평균, B에 해당하는 값 각각에 대한 평균일 수 있다. 즉, R, G, B에 해당하는 픽셀 값들 각각에 대해 차이 값과 기 설정된 임계 값이 비교된다. 구체적으로 R, G, B에 해당하는 픽셀 값들의 차이가 기 설정된 임계 값보다 모두 같거나 큰 경우, 바운딩 박스가 설정될 수 있다.
한편, R, G, B에 해당하는 픽셀 값들의 차이 중 어느 하나만이라도 기 설정된 임계 값보다 같거나 큰 경우, 바운딩 박스가 설정될 수 있다. 이때, 컨텐츠의 모든 픽셀들의 R, G, B 픽셀 값들의 평균 중 가장 작은 평균 값을 가지는 요소에 해당하는 픽셀 값들의 차이가 기 설정된 임계 값보다 같거나 큰 경우, 바운딩 박스가 설정될 수 있다. 예를 들어, 컨텐츠의 모든 픽셀들의 R에 해당하는 픽셀 값의 평균 값이 630이고, G에 해당하는 픽셀 값의 평균 값이 530이고, B에 해당하는 픽셀 값의 평균 값이 30이면, 기 설정된 임계 값은 30일 수 있다.
픽셀 값의 평균은, 아래 수학식 1과 같이 계산될 수 있다.
[수학식 1]
Figure 112021089276357-pat00001
수학식 1에서 k는 컨텐츠의 픽셀들의 개수이고, VRn은 컨텐츠의 n번째 픽셀의 R에 해당하는 픽셀 값이고, VGn은 컨텐츠의 n번째 픽셀의 G에 해당하는 픽셀 값이고, VBn은 컨텐츠의 n번째 픽셀의 B에 해당하는 픽셀 값일 수 있다. n은 1이상의 정수로 1부터 k까지의 정수일 수 있다.
입력부(650)는, 사용자가 컨텐츠 내의 특정 오브젝트에 대한 정보를 얻고자 하는 경우, 사용자가 특정 오브젝트를 선택하는 정보를 입력받을 수 있다. 예를 들어, 컨텐츠 내에 제1 오브젝트 및 제2 오브젝트가 존재할 때, 사용자는 제1 오브젝트에 대한 정보를 얻기 위해 제1 오브젝트를 선택할 수 있는데, 이때, 사용자는 입력부(650)를 통해 제1 오브젝트를 선택할 수 있다. 이때, 사용자는 외부 장치(예, 마우스, 키보드 등)를 이용하거나 터치 기능을 이용하여 직접 터치함으로써 컨텐츠 내 오브젝트를 선택할 수 있다.
도 7은 본 발명의 일 실시예에 따른 컨텐츠 내 특정 오브젝트에 대한 정보를 제공하는 방법을 나타낸 도면이다.
도 7(a)는 컨텐츠가 사용자 장치 상에서 디스플레이되는 것을 나타낸 도면이고, 도 7(b)는 컨텐츠 내 사용자가 선택한 특정 오브젝트에 대한 정보가 사용자 장치 상에서 디스플레이되는 것을 나타낸 도면이다.
도 7(a), (b)에서 나타낸 사용자 장치 상에서 디스플레이되는 컨텐츠는, 외부로부터 제공받는 컨텐츠(예, 방송 플랫폼을 통해 제공받는 실시간 영상, 이미지, 오디오 등) 또는 사용자가 직접 촬영한 영상, 이미지 또는 사용자가 사용자 장치를 통해 실시간으로 녹음하는 오디오(음성)일 수 있다.
사용자 장치는 컨텐츠 내 전부 또는 일부의 오브젝트들을 추출할 수 있다. 도 7(a)를 참조하면, 사용자 장치는 제 1오브젝트(710), 제 2오브젝트(720), 제3 오브젝트(730), 제4 오브젝트(740)를 추출할 수 있다. 예를 들어, 제 1오브젝트(710)는 의자, 제 2오브젝트(720)는 노트북, 제3 오브젝트(730)는 사람, 제4 오브젝트(740)는 책상일 수 있다.
도 7(b)를 참조하면 사용자는, 컨텐츠 내 추출되는 오브젝트들 중 정보를 얻고자 하는 특정 오브젝트를 선택할 수 있다. 예를 들어, 사용자는 제2 오브젝트(720)(예, 노트북)을 선택할 수 있다.
사용자 장치는, 오브젝트 정보 제공 서버로 사용자가 선택한 특정 오브젝트(예, 제2 오브젝트)를 전송할 수 있다. 다시 말하면, 사용자 장치는 오브젝트 정보 제공 서버로 특정 오브젝트를 식별하기 위한 정보를 전송할 수 있다. 예를 들어, 사용자 장치는 컨텐츠 내의 특정 오브젝트를 따로 크롭하여 크롭된 부분만 서버로 전송할 수 있다.
오브젝트 정보 제공 서버는, 사용자 장치로부터 수신한 특정 오브젝트를 식별하기 위한 정보를 이용하여 획득된 특정 오브젝트에 대한 정보를 사용자 장치로 전송할 수 있다. 이때, 특정 오브젝트에 대한 정보는, 오브젝트 정보 제공 서버가 직접 획득할 수 있고, 외부 검색 서버(예, 검색 포털 사이트)로부터 제공받을 수 있고, 컨텐츠 제공처로부터 직접 제공받을 수 있다.
오브젝트 정보 제공 서버로부터 특정 오브젝트에 대한 정보를 수신한 사용자 장치는, 특정 오브젝트에 대한 정보를 디스플레이 할 수 있다. 예를 들어, 사용자가 선택한 특정 오브젝트가 제2 오브젝트(예, 노트북)인 경우, 사용자 장치는 제2 오브젝트에 대한 정보(750)를 디스플레이 할 수 있다. 이때, 제2 오브젝트에 대한 정보(750)는 컨텐츠 상 중첩되어 디스플레이되거나 별도의 팝업 창을 통해 디스플레이될 수 있다. 예를 들어, 사용자가 마우스 커서를 특정 오브젝트에 위치시키는 경우, 마우스 커서 주변에 특정 오브젝트에 대한 정보가 디스플레이될 수 있다. 특정 오브젝트에 대한 정보는, 사용자가 선택한 특정 오브젝트에 따라 달리 구성될 수 있다. 예를 들어, 특정 오브젝트가 사물인 경우, 특정 오브젝트에 대한 정보는 모델명, 제조일자, 색상, 가격(최소가격 내지 최대가격), 구매처(구매처 링크) 등일 수 있다. 특정 오브젝트가 사람인 경우, 특정 오브젝트에 대한 정보는, 인물명, 생년월일, 상기 인물이 착용한 아이템(예, 옷, 시계, 신발 등)을 구매할 수 있는 구매처(구매처 링크), 필모그래피 등일 수 있다. 또한, 특정 오브젝트에 대한 정보는 텍스트 형식뿐 아니라 이미지, 영상, 음성 등 디지털화 가능한 모든 형태로 사용자에게 제공될 수 있다.
특정 오브젝트에 대한 정보가 컨텐츠 상에 중첩되어 디스플레이될 것인지, 별도의 팝업 창을 통해 디스플레이 될 것인지 여부는 오브젝트 정보 제공 서버로부터 수신한 특정 오브젝트에 대한 정보의 데이터 크기에 기초하여 결정되거나 특정 오브젝트에 대한 정보가 사용자에게 어떠한 형태로 제공되는지에 기초하여 결정될 수 있다. 구체적으로, 특정 오브젝트에 대한 정보가 이미지 또는 영상으로 제공되는 경우, 특정 오브젝트에 대한 정보는 팝업 형태로 디스플레이될 수 있다. 또한, 특정 오브젝트에 대한 정보의 데이터 크기가 기 설정된 임계 값보다 큰 경우 팝업 형태로 디스플레이될 수 있다. 또한, 컨텐츠 내 특정 오브젝트가 존재하는 위치에 따라 특정 오브젝트에 대한 정보가 디스플레이되는 위치가 결정될 수 있다. 구체적으로, 특정 오브젝트에 대한 정보가 컨텐츠 상에 중첩되어 디스플레이되는 경우, 컨텐츠의 높이 또는 너비(영상인 경우, 프레임 높이 또는 너비)에 기초하여 특정 오브젝트에 대한 정보가 디스플레이되는 위치가 결정될 수 있다. 예를 들어, 컨텐츠의 높이가 H인 경우, 특정 오브젝트가 컨텐츠 내 H/2보다 하측에 존재하는 경우, 특정 오브젝트에 대한 정보는 특정 오브젝트의 상측에 디스플레이될 수 있고, 특정 오브젝트가 컨텐츠 내 H/2 보다 상측에 존재하는 경우, 특정 오브젝트에 대한 정보는 특정 오브젝트의 하측에 디스플레이될 수 있다. 마찬가지로 컨텐츠의 높이가 W인 경우, 특정 오브젝트가 컨탠츠 내 W/2보다 좌측에 존재하는 경우, 특정 오브젝트에 대한 정보는 특정 오브젝트의 우측에 디스플레이될 수 있고, 특정 오브젝트가 컨텐츠 내 W/2보다 우측에 존재하는 경우, 특정 오브젝트에 대한 정보는 특정 오브젝트의 좌측에 디스플레이될 수 있다.
또한, 특정 오브젝트에 대한 정보가 디스플레이되는 위치는 컨텐츠의 높이 및 너비 모두가 고려되어 결정될 수 있다. 예를 들어, 특정 오브젝트가 컨텐츠 내 H/2보다 하측에 존재하고, W/2보다 좌측에 존재하는 경우, 특정 오브젝트에 대한 정보는 특정 오브젝트의 우상측에 디스플레이될 수 있다. 특정 오브젝트가 컨텐츠 내 H/2보다 하측에 존재하고, W/2보다 우측에 존재하는 경우, 특정 오브젝트에 대한 정보는 특정 오브젝트의 좌상측에 디스플레이될 수 있다. 특정 오브젝트가 컨텐츠 내 H/2보다 상측에 존재하고, W/2보다 좌측에 존재하는 경우, 특정 오브젝트에 대한 정보는 특정 오브젝트의 우하측에 디스플레이될 수 있다. 특정 오브젝트가 컨텐츠 내 H/2보다 상측에 존재하고, W/2보다 우측에 존재하는 경우, 특정 오브젝트에 대한 정보는 특정 오브젝트의 좌하측에 디스플레이될 수 있다.
한편, 사용자 장치는 오디오 컨텐츠를 재생할 수도 있는데, 이때 사용자 장치는 오디오 컨텐츠의 소리를 자막으로 디스플레이할 수 있다. 사용자는 자막 중 정보를 얻고자 하는 단어를 선택하면, 해당 단어에 대한 정보를 제공받을 수 있다. 이때, 해당 단어에 대한 정보는 상술한 특정 오브젝트에 대한 정보와 동일한 방법으로 제공될 수 있다.
한편, 사용자 장치는 사용자가 실시간으로 녹음하는 음성 컨텐츠를 입력으로하여, 녹음한 음성 컨텐츠에 대한 정보를 사용자에게 제공할 수 있다. 예를 들어, 녹음한 음성 컨텐츠는, 사용자가 정보를 얻기 원하는 특정 장소 또는 특정 물건을 지칭하는 단어일 수 있다. 이때, 녹음한 음성 컨텐츠에 대한 정보는 상술한 특정 오브젝트에 대한 정보와 동일한 방법으로 제공될 수 있다.
도 8는 본 발명의 일 실시예에 따른 컨텐츠 내 특정 오브젝트에 대한 정보를 제공하는 방법을 나타낸 도면이다.
도 8(a)는 사용자가 자신이 정보를 얻기 위한 특정 오브젝트를 사용자 장치로 직접 촬영하는 것을 나타낸 도면이다. 도 8(b)는 사용자가 직접 촬영한 이미지를 나타낸 도면이다. 도 8(c)는 사용자가 직접 촬영한 이미지 내 특정 오브젝트에 대한 정보를 나타낸 도면이다.
도 8(a)를 참조하면, 사용자는 일상 생활 중 특정 오브젝트에 대한 정보를 획득하기 원하는 경우가 있을 수 있다. 도 8(b)를 참조하면, 사용자는 정보를 얻고자 하는 특정 오브젝트를 포함하는 복수의 오브젝트들이 포함되는 컨텐츠(예, 이미지)를 촬영할 수 있다. 예를 들어, 사용자는 특정 꽃에 대한 정보를 얻고자 하여 특정 꽃을 포함하는 복수의 꽃들이 존재하는 이미지를 촬영할 수 있다. 이때 촬영된 이미지 내에는 복수의 꽃들이 존재하므로, 사용자 장치는 촬영된 이미지 내 복수의 꽃들 각각을 추출하여야 한다. 도 8(b)에서 나타낸 바와 같이 사용자 장치는 복수의 꽃들을 각각 제1 꽃(810), 제 2꽃(820)으로 추출할 수 있고, 별도의 바운딩 박스를 제공할 수도 있다. 사용자는 복수의 오브젝트 중 정보를 얻기 원하는 오브젝트를 선택할 수 있다. 이때 사용자가 오브젝트를 선택하는 방법은 상술한 바와 같이 외부 장치(예, 키보드, 마우스)를 이용하거나 터치 기능을 활용하는 것일 수 있다. 사용자 장치는 사용자가 선택한 특정 오브젝트를 오브젝트 정보 제공 서버로 전송한 후, 오브젝트 정보 제공 서버로부터 특정 오브젝트에 대한 정보를 획득할 수 있다. 예를 들어, 도 8(c)를 참조하면, 사용자가 제 1꽃(810)을 선택한 경우, 사용자 장치는 오브젝트 정보 제공 서버로부터 제 1꽃(810)에 대한 정보를 획득하여 사용자에게 제공할 수 있다. 이때, 제공되는 정보는 사용자가 선택한 특정 오브젝트의 종류에 따라 달라질 수 있다. 예를 들어, 특정 오브젝트가 꽃인 경우 제공되는 정보는 식물명, 개화시기, 원산지, 구매가격, 구매처 등일 수 있다. 또한 제공되는 정보는 전술한 바와 같이 컨텐츠 내 중첩되어 디스플레이되거나 별도의 팝업 창을 통해 디스플레이될 수 있다.
도 9는 본 발명의 일 실시에에 따른 컨텐츠 내 특정 오브젝트에 대한 정보를 제공하는 방법을 나타낸 흐름도이다.
한편 이하 도 9에 기반하여 설명되는 컨텐츠 내 특정 오브젝트에 대한 정보를 제공하는 방법에 기반하여, ⓐ 유튜브 영상 내 인물에 대해 마우스를 위치시키면 자동으로 연관 정보가 제공되거나, ⓑ 오디오 정보의 경우, 컨텐츠 자막에 마우스를 위치시키면 연관성 높은 관련 정보가 제공되거나, ⓒ 제공되는 정보는 기초적인 텍스트에서부터 영상 등 디지털화 된 가능한 모든 형태의 정보가 제공되거나, ⓓ 거리를 걷다가도 궁금한 장소나 물건에 대해 궁금할 경우, 스마트폰 버튼 또는 음성 질문을 통해 정보 요청을 받아 제공될 수 있다.
이하에서 도 9를 참조하여 도 5 내지 도 8를 통해 설명한 본 발명의 일 실시예에 따른 컨텐츠 내 특정 오브젝트에 대한 정보를 제공하는 방법에 대해 구체적으로 설명한다.
사용자 장치(903)는 사용자에게 컨텐츠를 디스플레이할 수 있다. 이때, 컨텐츠는 컨텐츠 제공 서버(904)로부터 제공받을 수 있다(S910). 컨텐츠는 사용자가 직접 촬영하거나 녹음한 컨텐츠일 수도 있다. 사용자 장치(903)는, 컨텐츠 내 존재하는 오브젝트들을 각각 추출할 수 있다(S920). 사용자는 사용자 장치(903)가 추출한 오브젝트들 중 정보를 얻고자 하는 특정 오브젝트를 선택할 수 있다. 이때, 사용자 장치(903)는 사용자의 오브젝트 선택을 위해 추출한 오브젝트들 각각에 별도의 바운딩 박스를 할당하여 디스플레이할 수 있다. 이때, 특정 오브젝트를 추출하는 방법은 상술한 컨텐츠의 픽셀들의 각 픽셀 값들을 이용하는 방법이 적용될 수 있다. 사용자 장치(903)는, 사용자가 선택한 특정 오브젝트에 대한 특정 오브젝트 식별 정보를 오브젝트 정보 제공 서버(902)로 전송할 수 있다(S930). 특정 오브젝트 식별 정보는 오브젝트 정보 제공 서버(902)가 특정 오브젝트가 무엇인지 식별하기 위한 것이다. 오브젝트 정보 제공 서버(902)는 특정 오브젝트 식별 정보를 통해 특정 오브젝트를 식별한다(S940). 특정 오브젝트 식별 정보는, 사용자가 선택한 특정 오브젝트를 컨텐츠로부터 크롭한 것일 수 있다. 오브젝트 정보 제공 서버(902)는, 특정 오브젝트 식별 정보를 이용하여 식별한 특정 오브젝트에 대한 식별 정보를 검색 서버(901)로 전송할 수 있다. 식별 정보는, 사물인 경우 모델명, 인물인 경우 인물명, 식물인 경우 식물명 등일 수 있다. 검색 서버(901)는 식별 정보를 이용하여 특정 오브젝트에 대한 정보를 특정 오브젝트 정보를 오브젝트 정보 제공 서버(902)로 전송하고, 이를 수신한 오브젝트 정보 제공 서버(902)는 특정 오브젝트 정보를 사용자 장치(903)으로 전송할 수 있다(S960, S970). 사용자 장치는 특정 오브젝트 정보를 디스플레이하여 사용자에게 제공할 수 있다(S980). 이때 특정 오브젝트 정보는 상술한 바와 같이 컨텐츠에 중첩되어 디스플레이되거나 별도의 팝업 창을 통해 디스플레이될 수 있다.
한편, 컨텐츠를 제공하는 컨텐츠 제공 서버(904)는 컨텐츠에 포함되는 오브젝트들에 대한 정보를 오브젝트 정보 제공 서버(902)에 제공할 수 있다. 이때, 오브젝트 정보 제공 서버는, 컨텐츠 제공 서버(904)가 제공한 오브젝트들에 대한 정보 중 사용자 장치가 전송하는 특정 오브젝트 식별 정보와 대응되는 오브젝트에 대한 정보를 사용자 장치로 전송할 수 있다. 즉, 컨텐츠 제공 서버가 컨텐츠에 포함되는 오브젝트들에 대한 정보를 오브젝트 정보 제공 서버(902)에 제공하는 경우, S950, S960 단계는 생략될 수 있다.
특정 오브젝트에 대한 정보인, 특정 오브젝트 정보는 하나의 정보가 아닌 복수개의 정보일 수 있다. 오브젝트 정보 제공 서버(902)는, 사용자 장치(903)의 등급에 따라 복수개의 정보 중 일부만을 사용자 장치(903)에게 제공하거나 전부를 제공할 수 있다. 복수개의 정보 중 일부만이 사용자 장치(903)에게 제공되는 경우, 복수개의 정보 중 다른 일부가 블러처리되어 사용자 장치(903)로 제공될 수 있다. 사용자 장치(903)의 등급은 사용자가 오브젝트 정보 제공 서버(902)에 제공한 금액(즉, 과금)에 따라 설정될 수 있다.
특정 오브젝트 정보에는, 특정 오브젝트를 구입할 수 있는 쇼핑몰의 인터넷주소가 포함될 수 있다. 이때, 상기 쇼핑몰은 복수 개일 수 있는데, 오브젝트 정보 제공 서버(902)는 상기 복수 개의 쇼핑몰 중 특정 쇼핑몰에게 쇼핑몰 연결 수수료를 제공받을 수 있고, 상기 특정 쇼핑몰의 인터넷주소 만을 특정 오브젝트 정보에 포함하거나, 상기 특정 쇼핑몰의 인터넷주소를 상기 복수 개의 쇼핑몰의 인터넷주소들 중 가장 우선하여 제공할 수 있다.
도 9에 도시된 오브젝트 정보 제공 서버(902), 사용자 장치(903)는 도 5의 오브젝트 정보 제공 서버(520), 사용자 장치(530)와 동일한 것일 수 있다.
또한 본 발명의 일 실시예에 따른 오브젝트 검출 장치(400)는 아래와 같은 특징을 포함할 수 있다.
오브젝트 검출 장치(400)는, 예를 들면, 오브젝트를 포함하는 이미지 데이터를 입력 받는 입력부; 상기 입력된 이미지 데이터로부터 상기 오브젝트에 관한 적어도 하나 이상의 특징점을 추출하는 추출부(410); 상기 추출된 특징점에 대응하는 특징점 기술(description) 데이터를 생성하는 특징 생성부(420); 및 상기 생성된 특징점 기술 데이터에 기초하여 상기 이미지 데이터에 대응하는 컨텐츠를 식별하는 오브젝트 검출부(430)를 더 포함할 수 있다.
상기 특징 생성부(420)는: 상기 추출된 특징점 주변의 복수의 영역을 결정하는 영역 결정부; 상기 결정된 영역 각각과 상기 추출된 특징점과의 거리에 기초하여 상기 결정된 영역 각각을 설명하는 데이터의 크기를 결정하는 크기 결정부; 및 상기 결정된 데이터의 크기에 기초하여 상기 특징점 기술 데이터를 생성하는 생성부; 를 포함할 수 있다.
상기 데이터의 크기는, 예를 들면, 상기 특징점과 상기 결정된 영역 각각 간의 특징 벡터의 정수값 또는 소수점 자리수에 대응할 수 있다.
오브젝트 검출 장치(400)는 특정 컨텐츠의 요청을 위한 특정 오브젝트를 포함하는 이미지 데이터를 사용자 장치(530)로부터 수신할 수 있다.
오브젝트 검출 장치(400)는 상기 사용자 장치(530)로부터 수신한 이미지 데이터에 포함된 오브젝트의 특징점을 추출하고, 추출된 특징점을 이용하여 이미지 데이터에 대응하는 컨텐츠를 식별할 수 있다. 일 예로, 상기 식별된 컨텐츠는 복수 개일 수 있다.
이 때, 오브젝트 검출 장치(400)는 식별된 컨텐츠의 정보를 사용자 장치(530)에게 전송함으로써, 사용자 장치(530)이 오브젝트 정보 제공 서버(520)에게 해당 컨텐츠를 요청하게 할 수 있다. 또는 오브젝트 검출 장치(400)는 식별된 컨텐츠의 정보를 오브젝트 정보 제공 서버(520)에게 전송함으로써, 오브젝트 정보 제공 서버(520)가 사용자 장치(530)에게 해당 컨텐츠를 전송하게 할 수 있다.
오브젝트 정보 제공 서버(520)는 특정 컨텐츠의 사용자 장치(530)로부터 요청받을 수 있고, 컨텐츠의 요청에 대한 응답으로 해당 컨텐츠를 사용자 장치(530)에게 전송할 수 있다. 또한, 오브젝트 정보 제공 서버(520)는 오브젝트 검출 장치(400)로부터 특정 컨텐츠의 사용자 장치(530)로의 전송을 요청받을 수 있고, 이 때 오브젝트 정보 제공 서버(520)는 컨텐츠의 전송 요청에 대한 응답으로 해당 컨텐츠를 사용자 장치(530)에게 전송할 수 있다.
오브젝트 정보 제공 서버(520)는 오브젝트 검출 장치(400)로부터 특정 컨텐츠의 사용자 장치(530)로의 전송을 요청받은 경우, 즉시 컨텐츠를 사용자 장치(530)에게 전송하지 않고, 오브젝트 검출 장치(400)로부터 수신한 컨텐츠의 정보에 대응하는 데이터를 사용자 장치(530)에게 전송함으로써 사용자가 원하는 컨텐츠가 맞는지 확인을 받을 수 있다. 이는 오브젝트 검출 장치(400)가 복수개의 컨텐츠를 식별한 경우, 사용자가 복수의 컨텐츠 중 시청하려는 컨텐츠를 선택하게 할 수 있다.
컨텐츠 식별하는 서비스는 사용자 장치(530)에 설치되어있는 애플리케이션을 통해 제공될 수 있다. 여기서 애플리케이션은 응용 프로그램(application)을 의미하며, 예를 들어, 스마트폰에서 실행되는 앱(app)을 포함할 수 있다.
입력부는 사용자 장치(530)로부터 오브젝트를 포함하는 이미지 데이터를 입력 받을 수 있다.
추출부(410)는 입력부에서 입력된 이미지 데이터에 포함된 오브젝트에 관한 적어도 하나 이상의 특징점를 추출할 수 있다.
또한, 추출부(410)는 특징점 추출 알고리즘을 이용하여 입력부에서 입력된 이미지 데이터의 고유의 특징을 나타내는 적어도 하나 이상의 특징점을 추출할 수 있다. 이 때, 특징점 추출 알고리즘은 SURF(Speed Up Robust Feature Transform) 알고리즘 또는 SIFT(Scale Invariant Feature Transform) 알고리즘 중 어느 하나일 수 있다.
특징 생성부(420)는 추출부(410)에서 추출된 특징점에 대응하는 특징점 기술(description) 데이터를 생성할 수 있다.
또한 특징 생성부(420)는 영역 결정부, 크기 결정부, 및 생성부를 포함할 수 있다.
영역 결정부는 추출부(410)에서 추출된 특징점 주변의 복수의 영역을 결정할 수 있다. 예를 들면, 특징점 주변의 복수의 영역은 4×4의 16개의 영역일 수 있으며, 이는 예시적일 뿐이고, 실제로 4×4 뿐만 아니라 다양한 크기 또는 개수의 복수의 영역이 있을 수 있다.
크기 결정부는 영역 결정부에서 결정된 영역 각각과 추출부(410)에서 추출된 특징점과의 거리에 기초하여 영역 결정부에서 결정된 영역 각각을 설명하는 데이터의 크기를 결정할 수 있다. 이 때, 특징점 주변의 복수의 영역 중 하나인 제 1 영역이 제 2 영역보다 특징점에 가까운 경우, 크기 결정부는 제 1 영역을 설명하는 데이터의 크기를 제 2 영역을 설명하는 데이터의 크기보다 크게 결정할 수 있다.
또한, 데이터의 크기는 특징점과 결정된 영역 각각간의 특징 벡터의 정수값 또는 소수점 자리수에 대응할 수 있다. 즉, 특징점과 특정 영역간의 거리에 있어서 정수값 또는 소수점 자리수에 제한을 두어 특징점의 기술자(descriptor) 길이를 짧게 유지하도록 할 수 있다.
종래 기술에서는 16개의 영역 모두 동일한 데이터 크기(가중치)를 가지나, 크기 결정부는 특징점과 근접한 가운데 4개의 영역에 가중치를 두어 각 영역당 4byte를 할당하고, 나머지 테두리에 있는 12개의 영역에는 2byte를 할당할 수 있다. 또한, 크기 결정부는 특징점으로부터 거리가 먼 4개의 꼭지점 영역에 2byte를 할당하고 상대적으로 특징점으로부터 거리가 가까운 나머지 12개의 영역에 각각 4byte를 할당할 수 있다. 마찬가지로, 크기 결정부는 특징점과 근접한 가운데 4개의 영역에 가중치를 두어 각 영역당 4byte를 할당하고, 특징점과 멀리 떨어진 4개의 꼭지점 영역에 2byte를 할당하고 특징점과 적정의 거리를 둔 나머지 8개의 영역에는 3byte를 할당할 수 있다.
생성부는 크기 결정부에서 결정된 데이터의 크기에 기초하여 특징점 기술(description) 데이터를 생성할 수 있다.
생성부는 추출된 특징점의 오리엔테이션(orientation) 및 영역 결정부에서 결정된 복수의 영역에 대한 엣지(edge) 히스토그램(histogram)을 이용하여 특징점 기술 데이터를 생성할 수 있다.
오브젝트 검출부(430)는 특징 생성부(420)에서 생성된 특징점 기술 데이터에 기초하여 입력부에서 입력받은 이미지 데이터에 대응하는 컨텐츠를 식별할 수 있다. 이 때, 오브젝트 검출부(430)는 복수의 컨텐츠를 식별할 수 있다.
통신부는 오브젝트 검출부(430)에서 식별된 컨텐츠에 대한 정보를 사용자 장치(530) 또는 오브젝트 정보 제공 서버(520)에게 전송할 수 있다. 이 때, 오브젝트 정보 제공 서버(520)는 전송된 컨텐츠의 정보에 대응하는 데이터를 사용자 장치(530)에게 전송할 수 있다. 여기서, 컨텐츠의 정보에 대응하는 데이터는 사용자 장치(530)로 하여금 입력부에서 입력받은 이미지에 대한 컨텐츠가 오브젝트 검출부(430)에서 식별된 컨텐츠와 일치하는지 확인하기 위한 데이터일 수 있다.
컨텐츠의 정보에 대응하는 데이터는 식별된 컨텐츠 또는 식별된 컨텐츠에 대한 광고 정보일 수 있다. 또한, 컨텐츠의 정보에 대응하는 데이터는 식별된 컨텐츠에 대한 임의의 검색 엔진의 결과 정보일 수 있다.
뿐만 아니라, 컨텐츠의 정보에 대응하는 데이터는 사용자 장치(530)에 설치된 특정 어플리케이션을 실행시키는 신호를 포함할 수 있다.
통신부는 오브젝트 검출부(430)에서 복수의 컨텐츠를 식별한 경우, 식별된 복수의 컨텐츠의 정보를 오브젝트 정보 제공 서버(520)로 전송할 수 있다. 이 때, 오브젝트 정보 제공 서버(520)는 전송된 복수의 컨텐츠의 정보에 대응하는 복수의 데이터를 사용자 장치(530)에게 전송할 수 있다. 또한, 통신부는 사용자 장치(530)로부터 복수의 컨텐츠의 정보에 대응하는 복수의 데이터 중 어느 하나를 선택하는 신호를 수신할 수 있다.
이 때, 복수의 데이터 중 선택된 데이터에 대한 컨텐츠의 정보는 입력부에서 입력 받은 이미지 데이터와 매칭되어 데이터베이스에 저장될 수 있다.
데이터베이스는 데이터를 저장한다. 이 때, 데이터는 오브젝트 검출 장치(400) 내부의 각 구성요소들 간에 입력 및 출력되는 데이터를 포함하고, 오브젝트 검출 장치(400)와 오브젝트 검출 장치(400) 외부의 구성요소들간에 입력 및 출력되는 데이터를 포함한다. 예를 들어, 데이터베이스는 추출부(410)에서 추출한 적어도 하나 이상의 추출점의 위치 정보를 저장할 수 있다. 이러한 데이터베이스의 일 예에는 오브젝트 검출 장치(400) 내부 또는 외부에 존재하는 하드디스크드라이브, ROM(Read Only Memory), RAM(Random Access Memory), 플래쉬메모리 및 메모리카드 등이 포함된다.
본 문서의 다양한 실시예들에 따른 전자 장치(즉, 오브젝트 검출 장치, 오브젝트 정보 제공 서버, 및/또는 사용자 장치)는, 예를 들면, 스마트폰, 태블릿 PC, 이동 전화기, 영상 전화기, 전자책 리더기, 데스크탑 PC, 랩탑 PC, 넷북 컴퓨터, 워크스테이션, 서버, PDA, PMP(portable multimedia player), MP3 플레이어, 의료기기, 카메라, 또는 웨어러블 장치 중 적어도 하나를 포함할 수 있다. 웨어러블 장치는 액세서리형(예: 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(head-mounted-device(HMD)), 직물 또는 의류 일체형(예: 전자 의복), 신체 부착형(예: 스킨 패드 또는 문신), 또는 생체 이식형 회로 중 적어도 하나를 포함할 수 있다. 어떤 실시예들에서, 전자 장치는, 예를 들면, 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스, 홈 오토매이션 컨트롤 패널, 보안 컨트롤 패널, 미디어 박스(예: 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM), 게임 콘솔(예: XboxTM, PlayStationTM), 전자 사전, 전자 키, 캠코더, 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
다른 실시예에서, 전자 장치는, 각종 의료기기(예: 각종 휴대용 의료측정기기(혈당 측정기, 심박 측정기, 혈압 측정기, 또는 체온 측정기 등), MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 또는 초음파기 등), 네비게이션 장치, 위성 항법 시스템(GNSS(global navigation satellite system)), EDR(event data recorder), FDR(flight data recorder), 자동차 인포테인먼트 장치, 선박용 전자 장비(예: 선박용 항법 장치, 자이로 콤파스 등), 항공 전자기기(avionics), 보안 기기, 차량용 헤드 유닛(head unit), 산업용 또는 가정용 로봇, 드론(drone), 금융 기관의 ATM, 상점의 POS(point of sales), 또는 사물 인터넷 장치 (예: 전구, 각종 센서, 스프링클러 장치, 화재 경보기, 온도조절기, 가로등, 토스터, 운동기구, 온수탱크, 히터, 보일러 등) 중 적어도 하나를 포함할 수 있다. 어떤 실시예에 따르면, 전자 장치는 가구, 건물/구조물 또는 자동차의 일부, 전자 보드(electronic board), 전자 사인 수신 장치(electronic signature receiving device), 프로젝터, 또는 각종 계측 기기(예: 수도, 전기, 가스, 또는 전파 계측 기기 등) 중 적어도 하나를 포함할 수 있다. 다양한 실시예에서, 전자 장치는 플렉서블하거나, 또는 전술한 다양한 장치들 중 둘 이상의 조합일 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다. 본 문서에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.
또한 전자 장치는 버스, 프로세서, 메모리, 입출력 인터페이스, 디스플레이, 및 통신 인터페이스를 포함할 수 있다. 어떤 실시예에서는, 전자 장치는, 구성요소들 중 적어도 하나를 생략하거나 다른 구성요소를 추가적으로 구비할 수 있다. 버스는 구성요소들을 서로 연결하고, 구성요소들 간의 통신(예: 제어 메시지 또는 데이터)을 전달하는 회로를 포함할 수 있다. 프로세서는, 중앙처리장치, 어플리케이션 프로세서, 또는 커뮤니케이션 프로세서(communication processor(CP)) 중 하나 또는 그 이상을 포함할 수 있다. 프로세서는, 예를 들면, 전자 장치의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다.
메모리는, 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 메모리는, 예를 들면, 전자 장치의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다. 한 실시예에 따르면, 메모리는 소프트웨어 및/또는 프로그램을 저장할 수 있다. 프로그램은, 예를 들면, 커널, 미들웨어, 어플리케이션 프로그래밍 인터페이스(API), 및/또는 어플리케이션 프로그램(또는 "어플리케이션") 등을 포함할 수 있다. 커널, 미들웨어, 또는 API의 적어도 일부는, 운영 시스템으로 지칭될 수 있다. 커널은, 예를 들면, 다른 프로그램들(예: 미들웨어, API, 또는 어플리케이션 프로그램)에 구현된 동작 또는 기능을 실행하는 데 사용되는 시스템 리소스들(예: 버스, 프로세서, 또는 메모리 등)을 제어 또는 관리할 수 있다. 또한, 커널은 미들웨어, API, 또는 어플리케이션 프로그램에서 전자 장치의 개별 구성요소에 접근함으로써, 시스템 리소스들을 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.
미들웨어는, 예를 들면, API 또는 어플리케이션 프로그램이 커널과 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다. 또한, 미들웨어는 어플리케이션 프로그램으로부터 수신된 하나 이상의 작업 요청들을 우선 순위에 따라 처리할 수 있다. 예를 들면, 미들웨어는 어플리케이션 프로그램 중 적어도 하나에 전자 장치의 시스템 리소스(예: 버스, 프로세서, 또는 메모리 등)를 사용할 수 있는 우선 순위를 부여하고, 상기 하나 이상의 작업 요청들을 처리할 수 있다. API는 어플리케이션이 커널 또는 미들웨어에서 제공되는 기능을 제어하기 위한 인터페이스로, 예를 들면, 파일 제어, 창 제어, 영상 처리, 또는 문자 제어 등을 위한 적어도 하나의 인터페이스 또는 함수(예: 명령어)를 포함할 수 있다. 입출력 인터페이스는, 예를 들면, 사용자 또는 다른 외부 기기로부터 입력된 명령 또는 데이터를 전자 장치의 다른 구성요소(들)에 전달하거나, 또는 전자 장치의 다른 구성요소(들)로부터 수신된 명령 또는 데이터를 사용자 또는 다른 외부 기기로 출력할 수 있다.
디스플레이는, 예를 들면, 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 또는 마이크로 전자기계 시스템(MEMS) 디스플레이, 또는 전자종이(electronic paper) 디스플레이를 포함할 수 있다. 디스플레이는, 예를 들면, 사용자에게 각종 콘텐츠(예: 텍스트, 이미지, 비디오, 아이콘, 및/또는 심볼 등)을 표시할 수 있다. 디스플레이는, 터치 스크린을 포함할 수 있으며, 예를 들면, 전자 펜 또는 사용자의 신체의 일부를 이용한 터치, 제스쳐, 근접, 또는 호버링 입력을 수신할 수 있다. 통신 인터페이스는, 예를 들면, 전자 장치와 외부 장치(예: 제1 외부 전자 장치, 제2 외부 전자 장치, 또는 서버) 간의 통신을 설정할 수 있다. 예를 들면, 통신 인터페이스는 무선 통신 또는 유선 통신을 통해서 네트워크에 연결되어 외부 장치(예: 제2 외부 전자 장치 또는 서버)와 통신할 수 있다. 여기서 호버링 입력은 전자 펜 또는 사용자의 신체의 일부가 상기 디스플레이에 물리적으로(및/또는 직접적으로) 접촉되지는 않았으나, 정전기에 의해 전자 펜 또는 사용자의 신체의 일부의 접근을 상기 디스플레이를 통하여 식별(및/또는 인식)되는 과정을 통하여 입력되는 것이라고 볼 수 있으며, 예를 들면, 호버링 좌표 정보 등이 포함될 수 있다.
무선 통신은, 예를 들면, LTE, LTE-A(LTE Advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband), 또는 GSM(Global System for Mobile Communications) 등 중 적어도 하나를 사용하는 셀룰러 통신을 포함할 수 있다. 한 실시예에 따르면, 무선 통신은, 예를 들면, WiFi(wireless fidelity), 블루투스, 블루투스 저전력(BLE), 지그비(Zigbee), NFC(near field communication), 자력 시큐어 트랜스미션(Magnetic Secure Transmission), 라디오 프리퀀시(RF), 또는 보디 에어리어 네트워크(BAN) 중 적어도 하나를 포함할 수 있다. 한실시예에 따르면, 무선 통신은 GNSS를 포함할 수 있다. GNSS는, 예를 들면, GPS(Global Positioning System), Glonass(Global Navigation Satellite System), Beidou Navigation Satellite System(이하 "Beidou") 또는 Galileo, the European global satellite-based navigation system일 수 있다. 이하, 본 문서에서는, "GPS"는 "GNSS"와 상호 호환적으로 사용될 수 있다. 유선 통신은, 예를 들면, USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard232), 전력선 통신, 또는 POTS(plain old telephone service) 등 중 적어도 하나를 포함할 수 있다. 네트워크는 텔레커뮤니케이션 네트워크, 예를 들면, 컴퓨터 네트워크(예: LAN 또는 WAN), 인터넷, 또는 텔레폰 네트워크 중 적어도 하나를 포함할 수 있다.
제1 및 제2 외부 전자 장치 각각은 전자 장치와 동일한 또는 다른 종류의 장치일 수 있다. 다양한 실시예에 따르면, 전자 장치에서 실행되는 동작들의 전부 또는 일부는 다른 하나 또는 복수의 전자 장치(예: 전자 장치, 또는 서버에서 실행될 수 있다. 한 실시예에 따르면, 전자 장치가 어떤 기능이나 서비스를 자동으로 또는 요청에 의하여 수행해야 할 경우에, 전자 장치는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 그와 연관된 적어도 일부 기능을 다른 장치(예: 전자 장치, 또는 서버)에게 요청할 수 있다. 다른 전자 장치(예: 전자 장치, 또는 서버)는 요청된 기능 또는 추가 기능을 실행하고, 그 결과를 전자 장치로 전달할 수 있다. 전자 장치는 수신된 결과를 그대로 또는 추가적으로 처리하여 요청된 기능이나 서비스를 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
전자 장치는 하나 이상의 프로세서(예: AP), 통신 모듈, (가입자 식별 모듈, 메모리, 센서 모듈, 입력 장치, 디스플레이, 인터페이스, 오디오 모듈, 카메라 모듈, 전력 관리 모듈, 배터리, 인디케이터, 및 모터를 포함할 수 있다. 프로세서는, 예를 들면, 운영 체제 또는 응용 프로그램을 구동하여 프로세서에 연결된 다수의 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다. 프로세서는, 예를 들면, SoC(system on chip)로 구현될 수 있다. 한 실시예에 따르면, 프로세서는 GPU(graphic processing unit) 및/또는 이미지 신호 프로세서를 더 포함할 수 있다. 프로세서는 다른 구성요소들(예: 비휘발성 메모리) 중 적어도 하나로부터 수신된 명령 또는 데이터를 휘발성 메모리에 로드)하여 처리하고, 결과 데이터를 비휘발성 메모리에 저장할 수 있다.
통신 모듈(예: 통신 인터페이스)와 동일 또는 유사한 구성을 가질 수 있다. 통신 모듈은, 예를 들면, 셀룰러 모듈, WiFi 모듈, 블루투스 모듈, GNSS 모듈, NFC 모듈 및 RF 모듈을 포함할 수 있다. 셀룰러 모듈은, 예를 들면, 통신망을 통해서 음성 통화, 영상 통화, 문자 서비스, 또는 인터넷 서비스 등을 제공할 수 있다. 한 실시예에 따르면, 셀룰러 모듈은 가입자 식별 모듈(예: SIM 카드)을 이용하여 통신 네트워크 내에서 전자 장치의 구별 및 인증을 수행할 수 있다. 한 실시예에 따르면, 셀룰러 모듈은 프로세서가 제공할 수 있는 기능 중 적어도 일부 기능을 수행할 수 있다. 한 실시예에 따르면, 셀룰러 모듈은 커뮤니케이션 프로세서(CP)를 포함할 수 있다. 어떤 실시예에 따르면, 셀룰러 모듈, WiFi 모듈, 블루투스 모듈, GNSS 모듈 또는 NFC 모듈 중 적어도 일부(예: 두 개 이상)는 하나의 integrated chip(IC) 또는 IC 패키지 내에 포함될 수 있다. RF 모듈은, 예를 들면, 통신 신호(예: RF 신호)를 송수신할 수 있다. RF 모듈은, 예를 들면, 트랜시버, PAM(power amp module), 주파수 필터, LNA(low noise amplifier), 또는 안테나 등을 포함할 수 있다. 다른 실시예에 따르면, 셀룰러 모듈, WiFi 모듈, 블루투스 모듈, GNSS 모듈 또는 NFC 모듈 중 적어도 하나는 별개의 RF 모듈을 통하여 RF 신호를 송수신할 수 있다. 가입자 식별 모듈은, 예를 들면, 가입자 식별 모듈을 포함하는 카드 또는 임베디드 SIM을 포함할 수 있으며, 고유한 식별 정보(예: ICCID(integrated circuit card identifier)) 또는 가입자 정보(예: IMSI(international mobile subscriber identity))를 포함할 수 있다.
메모리(예: 메모리)는, 예를 들면, 내장 메모리 또는 외장 메모리를 포함할 수 있다. 내장 메모리는, 예를 들면, 휘발성 메모리(예: DRAM, SRAM, 또는 SDRAM 등), 비휘발성 메모리(예: OTPROM(one time programmable ROM), PROM, EPROM, EEPROM, mask ROM, flash ROM, 플래시 메모리, 하드 드라이브, 또는 솔리드 스테이트 드라이브(SSD) 중 적어도 하나를 포함할 수 있다. 외장 메모리는 플래시 드라이브(flash drive), 예를 들면, CF(compact flash), SD(secure digital), Micro-SD, Mini-SD, xD(extreme digital), MMC(multi-media card) 또는 메모리 스틱 등을 포함할 수 있다. 외장 메모리는 다양한 인터페이스를 통하여 전자 장치와 기능적으로 또는 물리적으로 연결될 수 있다.
센서 모듈은, 예를 들면, 물리량을 계측하거나 전자 장치의 작동 상태를 감지하여, 계측 또는 감지된 정보를 전기 신호로 변환할 수 있다. 센서 모듈은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러(color) 센서(예: RGB(red, green, blue) 센서), 생체 센서, 온/습도 센서, 조도 센서, 또는 UV(ultra violet) 센서 중의 적어도 하나를 포함할 수 있다. 추가적으로 또는 대체적으로, 센서 모듈은, 예를 들면, 후각(e-nose) 센서, 일렉트로마이오그라피(EMG) 센서, 일렉트로엔씨팔로그램(EEG) 센서, 일렉트로카디오그램(ECG) 센서, IR(infrared) 센서, 홍채 센서 및/또는 지문 센서를 포함할 수 있다. 센서 모듈은 그 안에 속한 적어도 하나 이상의 센서들을 제어하기 위한 제어 회로를 더 포함할 수 있다. 어떤 실시예에서는, 전자 장치는 프로세서의 일부로서 또는 별도로, 센서 모듈을 제어하도록 구성된 프로세서를 더 포함하여, 프로세서가 슬립(sleep) 상태에 있는 동안, 센서 모듈을 제어할 수 있다.
입력 장치는, 예를 들면, 터치 패널, (디지털) 펜 센서, 키, 또는 초음파 입력 장치를 포함할 수 있다. 터치 패널은, 예를 들면, 정전식, 감압식, 적외선 방식, 또는 초음파 방식 중 적어도 하나의 방식을 사용할 수 있다. 또한, 터치 패널은 제어 회로를 더 포함할 수도 있다. 터치 패널은 택타일 레이어(tactile layer)를 더 포함하여, 사용자에게 촉각 반응을 제공할 수 있다. (디지털) 펜 센서는, 예를 들면, 터치 패널의 일부이거나, 별도의 인식용 쉬트를 포함할 수 있다. 키는, 예를 들면, 하드웨어 버튼, 광학식 키, 또는 키패드를 포함할 수 있다. 초음파 입력 장치는 마이크를 통해, 입력 도구에서 발생된 초음파를 감지하여, 상기 감지된 초음파에 대응하는 데이터를 확인할 수 있다.
디스플레이는 패널, 홀로그램 장치, 프로젝터, 및/또는 이들을 제어하기 위한 제어 회로를 포함할 수 있다. 패널은, 예를 들면, 유연하게, 투명하게, 또는 착용할 수 있게 구현될 수 있다. 패널은 터치 패널과 하나 이상의 모듈로 구성될 수 있다. 한 실시예에 따르면, 패널은 사용자의 터치에 대한 압력의 세기를 측정할 수 있는 압력 센서(또는 포스 센서)를 포함할 수 있다. 상기 압력 센서는 터치 패널과 일체형으로 구현되거나, 또는 터치 패널과는 별도의 하나 이상의 센서로 구현될 수 있다. 홀로그램 장치는 빛의 간섭을 이용하여 입체 영상을 허공에 보여줄 수 있다. 프로젝터는 스크린에 빛을 투사하여 영상을 표시할 수 있다. 스크린은, 예를 들면, 전자 장치의 내부 또는 외부에 위치할 수 있다. 인터페이스는, 예를 들면, HDMI, USB, 광 인터페이스(optical interface), 또는 D-sub(D-subminiature)(278)를 포함할 수 있다. 추가적으로 또는 대체적으로, 인터페이스는, 예를 들면, MHL(mobile high-definition link) 인터페이스, SD카드/MMC(multi-media card) 인터페이스, 또는 IrDA(infrared data association) 규격 인터페이스를 포함할 수 있다.
오디오 모듈은, 예를 들면, 소리와 전기 신호를 쌍방향으로 변환시킬 수 있다. 오디오 모듈은, 예를 들면, 스피커, 리시버, 이어폰, 또는 마이크 등을 통해 입력 또는 출력되는 소리 정보를 처리할 수 있다. 카메라 모듈은, 예를 들면, 이미지(예; 정적 이미지 및/또는 동적 이미지) 및 동영상을 촬영할 수 있는 장치로서, 한 실시예에 따르면, 하나 이상의 이미지 센서(예: 전면 센서 또는 후면 센서), 렌즈, 이미지 시그널 프로세서(ISP), 또는 플래시(예: LED 또는 xenon lamp 등)를 포함할 수 있다. 전력 관리 모듈은, 예를 들면, 전자 장치의 전력을 관리할 수 있다. 한 실시예에 따르면, 전력 관리 모듈은 PMIC(power management integrated circuit), 충전 IC, 또는 배터리 또는 연료 게이지를 포함할 수 있다. PMIC는, 유선 및/또는 무선 충전 방식을 가질 수 있다. 무선 충전 방식은, 예를 들면, 자기공명 방식, 자기유도 방식 또는 전자기파 방식 등을 포함하며, 무선 충전을 위한 부가적인 회로, 예를 들면, 코일 루프, 공진 회로, 또는 정류기 등을 더 포함할 수 있다. 배터리 게이지는, 예를 들면, 배터리의 잔량, 충전 중 전압, 전류, 또는 온도를 측정할 수 있다. 배터리는, 예를 들면, 충전식 전지 및/또는 태양 전지를 포함할 수 있다.
인디케이터는 전자 장치 또는 그 일부(예: 프로세서)의 특정 상태, 예를 들면, 부팅 상태, 메시지 상태 또는 충전 상태 등을 표시할 수 있다. 모터는 전기적 신호를 기계적 진동으로 변환할 수 있고, 진동, 또는 햅틱 효과 등을 발생시킬 수 있다. 전자 장치는, 예를 들면, DMB(digital multimedia broadcasting), DVB(digital video broadcasting), 또는 미디어플로(mediaFloTM) 등의 규격에 따른 미디어 데이터를 처리할 수 있는 모바일 TV 지원 장치(예: GPU)를 포함할 수 있다. 본 문서에서 기술된 구성요소들 각각은 하나 또는 그 이상의 부품(component)으로 구성될 수 있으며, 해당 구성요소의 명칭은 전자 장치의 종류에 따라서 달라질 수 있다. 다양한 실시예에서, 전자 장치(예: 전자 장치)는 일부 구성요소가 생략되거나, 추가적인 구성요소를 더 포함하거나, 또는, 구성요소들 중 일부가 결합되어 하나의 개체로 구성되되, 결합 이전의 해당 구성요소들의 기능을 동일하게 수행할 수 있다.
본 발명의 다양한 실시예에서, 전자 장치(또는, 전자 장치)는, 전면, 후면 및 상기 전면과 상기 후면 사이의 공간을 둘러싸는 측면을 포함하는 하우징을 포함할 수도 있다. 터치스크린 디스플레이(예: 디스플레이)는, 상기 하우징 안에 배치되며, 상기 전면을 통하여 노출될 수 있다. 마이크는, 상기 하우징 안에 배치되며, 상기 하우징의 부분을 통하여 노출될 수 있다. 적어도 하나의 스피커는, 상기 하우징 안에 배치되며, 상기 하우징의 다른 부분을 통하여 노출될 수 있다. 하드웨어 버튼(예: 키)는, 상기 하우징의 또 다른 부분에 배치되거나 또는 상기 터치스크린 디스플레이 상에 표시하도록 설정될 수 있다. 무선 통신 회로(예: 통신 모듈)은, 상기 하우징 안에 위치할 수 있다. 상기 프로세서(또는, 프로세서)는, 상기 하우징 안에 위치하며, 상기 터치스크린 디스플레이, 상기 마이크, 상기 스피커 및 상기 무선 통신 회로에 전기적으로 연결될 수 있다. 상기 메모리(또는, 메모리)는, 상기 하우징 안에 위치하며, 상기 프로세서에 전기적으로 연결될 수 있다.
본 발명의 다양한 실시예에서, 상기 메모리는, 텍스트 입력을 수신하기 위한 제1 사용자 인터페이스를 포함하는 제1 어플리케이션 프로그램을 저장하도록 설정되고, 상기 메모리는, 실행 시에, 상기 프로세서가, 제1 동작과 제2 동작을 수행하도록 야기하는 인스트럭션들을 저장하고, 상기 제1 동작은, 상기 제1 사용자 인터페이스가 상기 터치스크린 디스플레이 상에 표시되지 않는 도중에, 상기 버튼을 통하여 제1 타입의 사용자 입력을 수신하고, 상기 제1 타입의 사용자 입력을 수신한 이후에, 상기 마이크를 통하여 제1 사용자 발화를 수신하고, 자동 스피치 인식(ASR: automatic speech recognition) 및 지능 시스템(intelligence system)을 포함하는 외부 서버로 상기 제1 사용자 발화에 대한 제1 데이터를 제공하고, 상기 제1 데이터를 제공한 이후에, 상기 외부 서버로부터 상기 제1 사용자 발화에 응답하여 상기 지능 시스템에 의하여 생성되는 태스크를 수행하도록 하는 적어도 하나의 명령을 수신하고, 상기 제2 동작은, 상기 터치스크린 디스플레이 상에 상기 제1 사용자 인터페이스가 표시되는 도중에 상기 버튼을 통하여 상기 제1 사용자 입력을 수신하고, 상기 제1 타입의 사용자 입력을 수신한 이후에, 상기 마이크를 통하여 제2 사용자 발화를 수신하고, 상기 외부 서버로 상기 제2 사용자 발화에 대한 제2 데이터를 제공하고, 상기 제2 데이터를 제공한 이후에, 상기 서버로부터, 상기 제2 사용자 발화로부터 상기 자동 스피치 인식에 의하여 생성된 텍스트에 대한 데이터를 수신하지만, 상기 지능 시스템에 의하여 생성되는 명령은 수신하지 않고, 상기 제1 사용자 인터페이스에 상기 텍스트를 입력할 수 있다.
본 발명의 다양한 실시예에서, 상기 버튼은, 상기 하우징의 상기 측면에 위치하는 물리적인 키를 포함할 수 있다.
본 발명의 다양한 실시예에서, 상기 제1 타입의 사용자 입력은, 상기 버튼에 대한 1회 누름, 상기 버튼에 대한 2회 누름, 상기 버튼에 대한 3회 누름, 상기 버튼에 대한 1회 누른 이후에 누름 유지, 또는 상기 버튼에 대한 2회 누름 및 누름 유지 중 하나일 수 있다.
본 발명의 다양한 실시예에서, 상기 인스트럭션들은, 상기 프로세서가 상기 제1 사용자 인터페이스를 가상 키보드와 함께 표시하도록 더 야기할 수 있다. 상기 버튼은, 상기 가상 키보드의 일부가 아닐 수 있다.
본 발명의 다양한 실시예에서, 상기 인스트럭션들은, 상기 프로세서가, 상기 외부 서버로부터, 상기 제1 동작 내에서의 상기 제1 사용자 발화로부터 ASR에 의하여 생성되는 텍스트에 대한 데이터를 수신하도록 더 야기할 수 있다.
본 발명의 다양한 실시예에서, 상기 제1 어플리케이션 프로그램은, 노트 어플리케이션 프로그램, 이메일 어플리케이션 프로그램, 웹 브라우저 어플리케이션 프로그램 또는 달력 어플리케이션 프로그램 중 적어도 하나를 포함할 수 있다.
본 발명의 다양한 실시예에서, 상기 제1 어플리케이션 프로그램은, 메시지 어플리케이션을 포함하고, 상기 인스트럭션들은, 상기 프로세서가, 상기 텍스트를 입력한 이후에 선택된 시간(및/또는 기간)이 초과하면, 상기 무선 통신 회로를 통하여 자동으로 입력된 텍스트를 송신하도록 더 야기할 수 있다.
본 발명의 다양한 실시예에서, 상기 인스트럭션들은, 상기 프로세서가, 제3 동작을 수행하도록 더 야기하고, 상기 제3 동작은, 상기 터치스크린 디스플레이 상에 상기 제1 사용자 인터페이스를 표시하는 도중에, 상기 버튼을 통하여 제2 타입의 사용자 입력을 수신하고, 상기 제2 타입의 사용자 입력을 수신한 이후에, 상기 마이크를 통하여 제3 사용자 발화를 수신하고, 상기 외부 서버로 상기 제3 사용자 발화에 대한 제3 데이터를 제공하고, 상기 제3 데이터를 제공한 이후에, 상기 제3 사용자 발화에 응답하여 상기 지능 시스템에 의하여 생성된 태스크를 수행하기 위한 적어도 하나의 명령을 상기 외부 서버로부터 수신할 수 있다.
본 발명의 다양한 실시예에서, 상기 인스트럭션들은, 상기 프로세서가, 제4 동작을 수행하도록 더 야기하고, 상기 제4 동작은, 상기 터치스크린 디스플레이 상에 상기 제1 사용자 인터페이스가 표시되지 않는 도중에, 상기 버튼을 통하여 상기 제2 타입의 사용자 입력을 수신하고, 상기 제2 타입의 사용자 입력을 수신한 이후에, 상기 마이크를 통하여 제4 사용자 발화를 수신하고, 상기 제4 사용자 발화에 대한 제4 데이터를 상기 외부 서버로 제공하고, 상기 제4 데이터를 제공한 이후에, 상기 제4 사용자 발화에 응답하여, 상기 지능 시스템에 의하여 생성된 태스크를 수행하기 위한 적어도 하나의 명령을 상기 외부 서버로부터 수신하고, 상기 마이크를 통하여 제5 사용자 발화를 수신하고, 상기 외부 서버로, 상기 제5 사용자 발화에 대한 제5 데이터를 제공하고, 및 상기 제5 데이터를 제공한 이후에, 상기 제5 사용자 발화에 응답하여 상기 지능 시스템에 의하여 생성된 태스크를 수행하기 위한 적어도 하나의 명령을 상기 외부 서버로부터 수신할 수 있다.
본 발명의 다양한 실시예에서, 상기 제1 타입의 사용자 입력 및 상기 제2 타입의 사용자 입력은 서로 다르며, 상기 버튼에 대한 1회 누름, 상기 버튼에 대한 2회 누름, 상기 버튼에 대한 3회 누름, 상기 버튼에 대한 1회 누른 이후에 누름 유지, 또는 상기 버튼에 대한 2회 누름 및 누름 유지 중 하나로부터 선택될 수 있다.
본 발명의 다양한 실시예에서, 상기 메모리는, 텍스트 입력을 수신하기 위한 제2 사용자 인터페이스를 포함하는 제2 어플리케이션 프로그램을 저장하도록 더 설정되며, 상기 인스트럭션들은, 실행 시에, 상기 프로세서가, 제3 동작을 수행하도록 더 야기하고, 상기 제3 동작은, 상기 제2 사용자 인터페이스를 표시하는 도중에 상기 버튼을 통하여 상기 제1 타입의 사용자 입력을 수신하고, 상기 제1 타입의 사용자 입력이 수신된 이후에, 상기 마이크를 통하여 제3 사용자 발화를 수신하고, 상기 외부 서버로, 상기 제3 사용자 발화에 대한 제3 데이터를 제공하고, 상기 제3 데이터를 제공한 이후에, 상기 외부 서버로부터, 상기 제3 사용자 발화로부터 ASR에 의하여 생성된 텍스트에 대한 데이터를 수신하면서, 상기 지능 시스템에 의하여 생성되는 명령은 수신하지 않고, 상기 제2 사용자 인터페이스에 상기 텍스트를 입력하고, 선택된 시간(및/또는 기간)이 초과하면 상기 무선 통신 회로를 통하여 상기 입력된 텍스트를 자동으로 송신할 수 있다.
본 발명의 다양한 실시예에서, 상기 메모리는, 텍스트 입력을 수신하기 위한 제1 사용자 인터페이스를 포함하는 제1 어플리케이션 프로그램을 저장하도록 설정되고, 상기 메모리는, 실행 시에, 상기 프로세서가, 제1 동작과 제2 동작을 수행하도록 야기하는 인스트럭션들을 저장하고, 상기 제1 동작은, 상기 버튼을 통하여 제1 타입의 사용자 입력을 수신하고, 상기 제1 타입의 사용자 입력을 수신한 이후에, 상기 마이크를 통하여 제1 사용자 발화를 수신하고, 자동 스피치 인식(ASR: automatic speech recognition) 및 지능 시스템(intelligence system)을 포함하는 외부 서버로, 상기 제1 사용자 발화에 대한 제1 데이터를 제공하고, 상기 제1 데이터를 제공한 이후에, 상기 제1 사용자 발화에 응답하여 상기 지능 시스템에 의하여 생성된 태스크를 수행하기 위한 적어도 하나의 명령을 상기 외부 서버로부터 수신하고, 상기 제2 동작은, 상기 버튼을 통하여 제2 타입의 사용자 입력을 수신하고, 상기 제2 타입의 사용자 입력을 수신한 이후에, 상기 마이크를 통하여 제2 사용자 발화를 수신하고, 상기 외부 서버로 상기 제2 사용자 발화에 대한 제2 데이터를 제공하고, 상기 제2 데이터를 제공한 이후에, 상기 서버로부터, 상기 제2 사용자 발화로부터 ASR에 의하여 생성된 텍스트에 대한 데이터를 수신하면서, 상기 지능 시스템에 의하여 생성되는 명령은 수신하지 않으며, 상기 제1 사용자 인터페이스에 상기 텍스트를 입력할 수 있다.
본 발명의 다양한 실시예에서, 상기 인스트럭션들은, 상기 프로세서가 상기 제1 사용자 인터페이스를 가상 키보드와 함께 표시하도록 더 야기할 수 있으며, 상기 버튼은, 상기 가상 키보드의 일부가 아닐 수 있다.
본 발명의 다양한 실시예에서, 상기 인스트럭션들은, 상기 프로세서가, 상기 외부 서버로부터 상기 제1 동작 내에서 상기 제1 사용자 발화로부터 상기 ASR에 의하여 생성되는 텍스트에 대한 데이터를 수신하도록 더 야기할 수 있다.
본 발명의 다양한 실시예에서, 상기 제1 어플리케이션 프로그램은, 노트 어플리케이션 프로그램, 이메일 어플리케이션 프로그램, 웹 브라우저 어플리케이션 프로그램 또는 달력 어플리케이션 프로그램 중 적어도 하나를 포함할 수 있다.
본 발명의 다양한 실시예에서, 상기 제1 어플리케이션 프로그램은, 메시지 어플리케이션을 포함하고, 상기 인스트럭션들은, 상기 프로세서가, 상기 텍스트를 입력한 이후에 선택된 시간(및/또는 기간)이 초과하면, 상기 무선 통신 회로를 통하여 자동으로 입력된 텍스트를 송신하도록 더 야기할 수 있다.
본 발명의 다양한 실시예에서, 상기 인스트럭션들은, 상기 프로세서가 상기 제1 사용자 인터페이스의 상기 디스플레이 상에 표시와 독립적으로 상기 제1 동작을 수행하도록 더 야기할 수 있다.
본 발명의 다양한 실시예에서, 상기 인스트럭션들은, 상기 프로세서가, 상기 전자 장치가 잠금 상태에 있거나 또는 상기 터치스크린 디스플레이가 턴 오프된 것 중 적어도 하나인 경우에, 상기 제2 동작을 수행하도록 더 야기할 수 있다.
본 발명의 다양한 실시예에서, 상기 인스트럭션들은, 상기 프로세서가, 상기 터치스크린 디스플레이 상에 상기 제1 사용자 인터페이스를 표시하는 도중에, 상기 제2 동작을 수행하도록 더 야기할 수 있다.
본 발명의 다양한 실시예에서, 상기 메모리는, 실행 시에, 상기 프로세서가, 상기 마이크를 통하여 사용자 발화를 수신하고, 자동 스피치 인식(automatic speech recognition: ASR) 또는 자연어 이해(natural language understanding: NLU) 중 적어도 하나를 수행하는 외부 서버로, 상기 사용자 발화에 대한 데이터와 함께, 상기 사용자 발화에 대한 데이터에 대하여 상기 ASR을 수행하여 획득된 텍스트에 대하여 상기 자연어 이해를 수행할지 여부와 연관된 정보를 송신하고, 상기 정보가 상기 자연어 이해를 수행하지 않을 것을 나타내면, 상기 외부 서버로부터 상기 사용자 발화에 대한 데이터에 대한 상기 텍스트를 수신하고, 상기 정보가 상기 자연어 이해를 수행할 것을 나타내면, 상기 외부 서버로부터 상기 텍스트에 대한 상기 자연어 이해 수행 결과 획득된 명령을 수신하도록 야기하는 인스트럭션을 저장할 수 있다.
한 실시예에 따르면, 프로그램 모듈(예: 프로그램)은 전자 장치(예: 전자 장치)에 관련된 자원을 제어하는 운영 체제 및/또는 운영 체제 상에서 구동되는 다양한 어플리케이션(예: 어플리케이션 프로그램)을 포함할 수 있다. 운영 체제는, 예를 들면, AndroidTM, iOSTM, WindowsTM, SymbianTM, TizenTM, 또는 BadaTM를 포함할 수 있다. 프로그램 모듈은 커널(예: 커널), 미들웨어(예: 미들웨어), (API(예: API), 및/또는 어플리케이션(예: 어플리케이션 프로그램)을 포함할 수 있다. 프로그램 모듈의 적어도 일부는 전자 장치 상에 프리로드 되거나, 외부 전자 장치(예: 전자 장치, 서버 등)로부터 다운로드 가능하다.
커널은, 예를 들면, 시스템 리소스 매니저 및/또는 디바이스 드라이버를 포함할 수 있다. 시스템 리소스 매니저는 시스템 리소스의 제어, 할당, 또는 회수를 수행할 수 있다. 한 실시예에 따르면, 시스템 리소스 매니저는 프로세스 관리부, 메모리 관리부, 또는 파일 시스템 관리부를 포함할 수 있다. 디바이스 드라이버는, 예를 들면, 디스플레이 드라이버, 카메라 드라이버, 블루투스 드라이버, 공유 메모리 드라이버, USB 드라이버, 키패드 드라이버, WiFi 드라이버, 오디오 드라이버, 또는 IPC(inter-process communication) 드라이버를 포함할 수 있다. 미들웨어는, 예를 들면, 어플리케이션이 공통적으로 필요로 하는 기능을 제공하거나, 어플리케이션이 전자 장치 내부의 제한된 시스템 자원을 사용할 수 있도록 API를 통해 다양한 기능들을 어플리케이션으로 제공할 수 있다. 한 실시예에 따르면, 미들웨어는 런타임 라이브러리, 어플리케이션 매니저, 윈도우 매니저, 멀티미디어 매니저, 리소스 매니저, 파워 매니저, 데이터베이스 매니저, 패키지 매니저, 커넥티비티 매니저, 노티피케이션 매니저, 로케이션 매니저, 그래픽 매니저, 또는 시큐리티 매니저 중 적어도 하나를 포함할 수 있다.
런타임 라이브러리는, 예를 들면, 어플리케이션이 실행되는 동안에 프로그래밍 언어를 통해 새로운 기능을 추가하기 위해 컴파일러가 사용하는 라이브러리 모듈을 포함할 수 있다. 런타임 라이브러리는 입출력 관리, 메모리 관리, 또는 산술 함수 처리를 수행할 수 있다. 어플리케이션 매니저는, 예를 들면, 어플리케이션의 생명 주기를 관리할 수 있다. 윈도우 매니저는 화면에서 사용되는 GUI 자원을 관리할 수 있다. 멀티미디어 매니저는 미디어 파일들의 재생에 필요한 포맷을 파악하고, 해당 포맷에 맞는 코덱을 이용하여 미디어 파일의 인코딩 또는 디코딩을 수행할 수 있다. 리소스 매니저는 어플리케이션의 소스 코드 또는 메모리의 공간을 관리할 수 있다. 파워 매니저는, 예를 들면, 배터리의 용량 또는 전원을 관리하고, 전자 장치의 동작에 필요한 전력 정보를 제공할 수 있다. 한 실시예에 따르면, 파워 매니저는 바이오스(BIOS: basic input/output system)와 연동할 수 있다. 데이터베이스 매니저는, 예를 들면, 어플리케이션에서 사용될 데이터베이스를 생성, 검색, 또는 변경할 수 있다. 패키지 매니저는 패키지 파일의 형태로 배포되는 어플리케이션의 설치 또는 갱신을 관리할 수 있다.
커넥티비티 매니저는, 예를 들면, 무선 연결을 관리할 수 있다. 노티피케이션 매니저는, 예를 들면, 도착 메시지, 약속, 근접성 알림 등의 이벤트를 사용자에게 제공할 수 있다. 로케이션 매니저는, 예를 들면, 전자 장치의 위치 정보를 관리할 수 있다. 그래픽 매니저는, 예를 들면, 사용자에게 제공될 그래픽 효과 또는 이와 관련된 사용자 인터페이스를 관리할 수 있다. 보안 매니저는, 예를 들면, 시스템 보안 또는 사용자 인증을 제공할 수 있다. 한 실시예에 따르면, 미들웨어는 전자 장치의 음성 또는 영상 통화 기능을 관리하기 위한 통화(telephony) 매니저 또는 전술된 구성요소들의 기능들의 조합을 형성할 수 있는 하는 미들웨어 모듈을 포함할 수 있다. 한 실시예에 따르면, 미들웨어는 운영 체제의 종류 별로 특화된 모듈을 제공할 수 있다. 미들웨어는 동적으로 기존의 구성요소를 일부 삭제하거나 새로운 구성요소들을 추가할 수 있다. API는, 예를 들면, API 프로그래밍 함수들의 집합으로, 운영 체제에 따라 다른 구성으로 제공될 수 있다. 예를 들면, 안드로이드 또는 iOS의 경우, 플랫폼 별로 하나의 API 셋을 제공할 수 있으며, 타이젠의 경우, 플랫폼 별로 두 개 이상의 API 셋을 제공할 수 있다.
어플리케이션은, 예를 들면, 홈, 다이얼러, SMS/MMS, IM(instant message), 브라우저, 카메라, 알람, 컨택트, 음성 다이얼, 이메일, 달력, 미디어 플레이어, 앨범, 와치, 헬스 케어(예: 운동량 또는 혈당 등을 측정), 또는 환경 정보(예: 기압, 습도, 또는 온도 정보) 제공 어플리케이션을 포함할 수 있다. 한 실시예에 따르면, 어플리케이션은 전자 장치와 외부 전자 장치 사이의 정보 교환을 지원할 수 있는 정보 교환 어플리케이션을 포함할 수 있다. 정보 교환 어플리케이션은, 예를 들면, 외부 전자 장치에 특정 정보를 전달하기 위한 노티피케이션 릴레이 어플리케이션, 또는 외부 전자 장치를 관리하기 위한 장치 관리 어플리케이션을 포함할 수 있다. 예를 들면, 알림 전달 어플리케이션은 전자 장치의 다른 어플리케이션에서 발생된 알림 정보를 외부 전자 장치로 전달하거나, 또는 외부 전자 장치로부터 알림 정보를 수신하여 사용자에게 제공할 수 있다. 장치 관리 어플리케이션은, 예를 들면, 전자 장치와 통신하는 외부 전자 장치의 기능(예: 외부 전자 장치 자체(또는, 일부 구성 부품)의 턴-온/턴-오프 또는 디스플레이의 밝기(또는, 해상도) 조절), 또는 외부 전자 장치에서 동작하는 어플리케이션을 설치, 삭제, 또는 갱신할 수 있다. 한 실시예에 따르면, 어플리케이션은 외부 전자 장치의 속성에 따라 지정된 어플리케이션(예: 모바일 의료 기기의 건강 관리 어플리케이션)을 포함할 수 있다. 한 실시예에 따르면, 어플리케이션은 외부 전자 장치로부터 수신된 어플리케이션을 포함할 수 있다. 프로그램 모듈의 적어도 일부는 소프트웨어, 펌웨어, 하드웨어(예: 프로세서), 또는 이들 중 적어도 둘 이상의 조합으로 구현(예: 실행)될 수 있으며, 하나 이상의 기능을 수행하기 위한 모듈, 프로그램, 루틴, 명령어 세트 또는 프로세스를 포함할 수 있다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬(ROM), 램(RAM), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 상술한 방법 또는 장치는 그 구성이나 기능의 전부 또는 일부가 결합되어 구현되거나, 분리되어 구현될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (10)

  1. 컨텐츠 내 특정 오브젝트에 대한 정보를 획득하기 위한 사용자 장치로서,
    통신부; 및 상기 통신부와 기능적으로 연결되어 있는 프로세서; 를 포함하고,
    상기 프로세서는:
    하나 이상의 오브젝트들을 포함하는 컨텐츠를 획득하고,
    상기 컨텐츠에 포함되는 이미지 정보 또는 동영상 정보로부터 RGB(Red-Green-Blue) 값들의 가지 수(number of branches)를 나타내는 RGB 가지 수 정보를 추출하고,
    상기 컨텐츠에 포함되는 이미지 정보 또는 동영상 정보가 단일 오브젝트에 상응하고, 상기 RGB 가지 수 정보가 소정의 임계치보다 높은 값을 나타내는 경우: 제1 오브젝트 검출 모드를 선택하되, 상기 제1 오브젝트 검출 모드는 회귀분석(Logistic Regression), SVM(Support Vector Machine), Latent SVM(Latent Support Vector Machine) 중 적어도 어느 하나에 기반하여 상기 이미지 정보 또는 상기 동영상 정보로부터 오브젝트 정보를 생성하고,
    상기 컨텐츠에 포함되는 이미지 정보 또는 동영상 정보가 단일 오브젝트에 상응하고, 상기 RGB 가지 수 정보가 상기 소정의 임계치 이하인 경우: 제2 오브젝트 검출 모드를 선택하되, 상기 제2 오브젝트 검출 모드는 가변 부분 모델(deformable part model)을 이용하여 규칙적인 움직임을 보이는 오브젝트에 대한 모델링을 수행하여 이동 중인 오브젝트와 배경을 분리시키는 과정을 통하여 상기 이미지 정보 또는 상기 동영상 정보로부터 오브젝트 정보를 생성하고,
    상기 컨텐츠에 포함되는 이미지 정보 또는 동영상 정보가 복수의 오브젝트에 상응하는 경우: 제3 오브젝트 검출 모드를 선택하되, 상기 제3 오브젝트 검출 모드는 HOG(Histogram of Oriented Gradient), Haar-like feature, Co-occurrence HOG, LBP(local binary pattern), FAST(features from accelerated segment test) 중 적어도 어느 하나에 기반하여 상기 이미지 정보 또는 상기 동영상 정보로부터 오브젝트 정보를 생성하고,
    상기 제1 내지 제3 오브젝트 검출 모드 중에서 선택된 오브젝트 검출 모드에 기반하여 상기 컨텐츠의 상기 하나 이상의 오브젝트들 중 특정 오브젝트를 추출하되, 상기 특정 오브젝트는 상기 컨텐츠를 구성하는 픽셀들 각각에 대해 인접한 픽셀들의 픽셀 값들이 기 설정된 임계 값 이상이 되는 픽셀들에 기초하여 추출되고,
    상기 특정 오브젝트를 식별하기 위한 식별 정보를 오브젝트 정보 제공 서버에게 전송하고,
    상기 오브젝트 정보 제공 서버로부터, 상기 특정 오브젝트에 대한 하나 이상의 정보를 수신하여 디스플레이하고,
    상기 특정 오브젝트에 대한 하나 이상의 정보는, 상기 특정 오브젝트의 종류에 따라 상이하고,
    상기 오브젝트 정보 제공 서버로부터 수신한 특정 오브젝트에 대한 정보의 데이터 크기에 기초하여, 상기 특정 오브젝트에 대한 하나 이상의 정보가 상기 컨텐츠 상에 중첩되어 디스플레이될 것인지 또는 팝업 형태로 디스플레이 될 것인지 여부를 결정하고,
    상기 특정 오브젝트에 대한 하나 이상의 정보는, 상기 컨텐츠와 중첩되거나 상기 팝업 형태로 디스플레이되는, 장치.
  2. 청구항 1에서,
    상기 기 설정된 임계 값은, 상기 컨텐츠를 구성하는 픽셀들의 픽셀 값들의 평균 값인, 장치.
  3. 청구항 2에서,
    상기 특정 오브젝트에 대한 하나 이상의 정보는:
    상기 특정 오브젝트가 인물인 경우, 인물명, 생년월일, 상기 인물이 착용한 아이템 및 상기 아이템의 구매처 중 적어도 어느 하나를 포함하고,
    상기 특정 오브젝트가 사물인 경우, 모델명, 제조일자, 가격 및 상기 사물의 구매처 중 적어도 어느 하나를 포함하는, 장치.
  4. 청구항 3에서,
    상기 특정 오브젝트에 대한 하나 이상의 정보의 개수는, 사용자가 상기 오브젝트 정보 제공 서버에 결제한 금액에 의해 결정되는, 장치.
  5. 장치가 컨텐츠 내 특정 오브젝트에 대한 정보를 획득하기 방법에 있어서,
    상기 장치가:
    하나 이상의 오브젝트들을 포함하는 컨텐츠를 획득하는 단계;
    상기 컨텐츠에 포함되는 이미지 정보 또는 동영상 정보로부터 RGB(Red-Green-Blue) 값들의 가지 수(number of branches)를 나타내는 RGB 가지 수 정보를 추출하는 단계;
    상기 컨텐츠에 포함되는 이미지 정보 또는 동영상 정보가 단일 오브젝트에 상응하고, 상기 RGB 가지 수 정보가 소정의 임계치보다 높은 값을 나타내는 경우: 제1 오브젝트 검출 모드를 선택하되, 상기 제1 오브젝트 검출 모드는 회귀분석(Logistic Regression), SVM(Support Vector Machine), Latent SVM(Latent Support Vector Machine) 중 적어도 어느 하나에 기반하여 상기 이미지 정보 또는 상기 동영상 정보로부터 오브젝트 정보를 생성하는 단계;
    상기 컨텐츠에 포함되는 이미지 정보 또는 동영상 정보가 단일 오브젝트에 상응하고, 상기 RGB 가지 수 정보가 상기 소정의 임계치 이하인 경우: 제2 오브젝트 검출 모드를 선택하되, 상기 제2 오브젝트 검출 모드는 가변 부분 모델(deformable part model)을 이용하여 규칙적인 움직임을 보이는 오브젝트에 대한 모델링을 수행하여 이동 중인 오브젝트와 배경을 분리시키는 과정을 통하여 상기 이미지 정보 또는 상기 동영상 정보로부터 오브젝트 정보를 생성하는 단계;
    상기 컨텐츠에 포함되는 이미지 정보 또는 동영상 정보가 복수의 오브젝트에 상응하는 경우: 제3 오브젝트 검출 모드를 선택하되, 상기 제3 오브젝트 검출 모드는 HOG(Histogram of Oriented Gradient), Haar-like feature, Co-occurrence HOG, LBP(local binary pattern), FAST(features from accelerated segment test) 중 적어도 어느 하나에 기반하여 상기 이미지 정보 또는 상기 동영상 정보로부터 오브젝트 정보를 생성하는 단계;
    상기 제1 내지 제3 오브젝트 검출 모드 중에서 선택된 오브젝트 검출 모드에 기반하여 상기 컨텐츠의 상기 하나 이상의 오브젝트들 중 특정 오브젝트를 추출하되, 상기 특정 오브젝트는 상기 컨텐츠를 구성하는 픽셀들 각각에 대해 인접한 픽셀들의 픽셀 값들이 기 설정된 임계 값 이상이 되는 픽셀들에 기초하여 추출되는 단계;
    상기 특정 오브젝트를 식별하기 위한 식별 정보를 오브젝트 정보 제공 서버에게 전송하는 단계; 및
    상기 특정 오브젝트에 대한 하나 이상의 정보를 수신하여 상기 오브젝트 정보 제공 서버로부터 디스플레이를 통하여 표시하는 단계; 를 포함하고,
    상기 특정 오브젝트에 대한 하나 이상의 정보는, 상기 특정 오브젝트의 종류에 따라 상이하고,
    상기 오브젝트 정보 제공 서버로부터 수신한 특정 오브젝트에 대한 정보의 데이터 크기에 기초하여, 상기 특정 오브젝트에 대한 하나 이상의 정보가 상기 컨텐츠 상에 중첩되어 디스플레이될 것인지 또는 팝업 형태로 디스플레이 될 것인지 여부를 결정하고,
    상기 특정 오브젝트에 대한 하나 이상의 정보는, 상기 컨텐츠와 중첩되거나 상기 팝업 형태로 표시되는, 방법.
  6. 청구항 5에서,
    상기 기 설정된 임계 값은, 상기 컨텐츠를 구성하는 픽셀들의 픽셀 값들의 평균 값인, 방법.
  7. 청구항 6에서,
    상기 특정 오브젝트에 대한 하나 이상의 정보는:
    상기 특정 오브젝트가 인물인 경우, 인물명, 생년월일, 상기 인물이 착용한 아이템 및 상기 아이템의 구매처 중 적어도 어느 하나를 포함하고,
    상기 특정 오브젝트가 사물인 경우, 모델명, 제조일자, 가격 및 상기 사물의 구매처 중 적어도 어느 하나를 포함하는, 방법.
  8. 청구항 7에서,
    상기 특정 오브젝트에 대한 하나 이상의 정보의 개수는, 사용자가 상기 오브젝트 정보 제공 서버에 결제한 금액에 의해 결정되는, 방법.
  9. 제 5 항에 기재된 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
  10. 제 5 항에 기재된 방법을 실행시키기 위해 컴퓨터 판독 가능한 기록 매체에 기록된 프로그램.
KR1020210101680A 2021-04-27 2021-08-03 오브젝트를 추출하는 방법 및 이를 위한 장치 KR102348852B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220001180A KR20230000932A (ko) 2021-04-27 2022-01-04 이미지를 분석하는 방법 및 분석 장치
KR1020220001178A KR20230000931A (ko) 2021-04-27 2022-01-04 이미지에서 객체를 추출하는 시스템

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20210054369 2021-04-27
KR1020210054369 2021-04-27
KR1020210054738 2021-04-28
KR20210054738 2021-04-28

Related Child Applications (2)

Application Number Title Priority Date Filing Date
KR1020220001180A Division KR20230000932A (ko) 2021-04-27 2022-01-04 이미지를 분석하는 방법 및 분석 장치
KR1020220001178A Division KR20230000931A (ko) 2021-04-27 2022-01-04 이미지에서 객체를 추출하는 시스템

Publications (1)

Publication Number Publication Date
KR102348852B1 true KR102348852B1 (ko) 2022-01-11

Family

ID=79355338

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020210101680A KR102348852B1 (ko) 2021-04-27 2021-08-03 오브젝트를 추출하는 방법 및 이를 위한 장치
KR1020220001180A KR20230000932A (ko) 2021-04-27 2022-01-04 이미지를 분석하는 방법 및 분석 장치
KR1020220001178A KR20230000931A (ko) 2021-04-27 2022-01-04 이미지에서 객체를 추출하는 시스템

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020220001180A KR20230000932A (ko) 2021-04-27 2022-01-04 이미지를 분석하는 방법 및 분석 장치
KR1020220001178A KR20230000931A (ko) 2021-04-27 2022-01-04 이미지에서 객체를 추출하는 시스템

Country Status (1)

Country Link
KR (3) KR102348852B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102604126B1 (ko) * 2023-01-02 2023-11-22 (주) 씨이랩 구독형 영상분석 시스템 및 이의 운용 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120019331A (ko) * 2010-08-25 2012-03-06 주식회사 팬택 인스턴트 마커를 이용한 증강 현실 장치 및 방법
KR20140122292A (ko) 2013-03-28 2014-10-20 삼성전자주식회사 디스플레이 장치의 디스플레이 방법 및 디스플레이 장치
KR20150005131A (ko) 2013-07-04 2015-01-14 엘지전자 주식회사 영상표시장치 및 영상표시장치 동작방법
KR20200052416A (ko) * 2018-10-25 2020-05-15 카페24 주식회사 객체 영역 추출을 수행하는 인공 신경망을 위한 학습 데이터를 생성하는 방법 및 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120019331A (ko) * 2010-08-25 2012-03-06 주식회사 팬택 인스턴트 마커를 이용한 증강 현실 장치 및 방법
KR20140122292A (ko) 2013-03-28 2014-10-20 삼성전자주식회사 디스플레이 장치의 디스플레이 방법 및 디스플레이 장치
KR20150005131A (ko) 2013-07-04 2015-01-14 엘지전자 주식회사 영상표시장치 및 영상표시장치 동작방법
KR20200052416A (ko) * 2018-10-25 2020-05-15 카페24 주식회사 객체 영역 추출을 수행하는 인공 신경망을 위한 학습 데이터를 생성하는 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102604126B1 (ko) * 2023-01-02 2023-11-22 (주) 씨이랩 구독형 영상분석 시스템 및 이의 운용 방법

Also Published As

Publication number Publication date
KR20230000931A (ko) 2023-01-03
KR20230000932A (ko) 2023-01-03

Similar Documents

Publication Publication Date Title
US11328186B2 (en) Device and method for processing metadata
US10244177B2 (en) Method for processing image to generate relevant data based on user inputs and electronic device supporting the same
KR102402096B1 (ko) 이미지 내 오브젝트와 관련된 정보를 제공하는 전자 장치
US10917552B2 (en) Photographing method using external electronic device and electronic device supporting the same
KR102329862B1 (ko) 영상의 컬러 변환 방법 및 전자 장치
KR102345579B1 (ko) 이미지 관련 서비스를 제공하기 위한 방법, 저장 매체 및 전자 장치
KR102636243B1 (ko) 이미지를 처리하기 위한 방법 및 그 전자 장치
KR20160103398A (ko) 이미지의 품질 측정 방법 및 장치
KR20160092256A (ko) 이미지 처리 방법 및 이를 지원하는 전자 장치
US10311613B2 (en) Electronic device for processing image and method for controlling thereof
KR102588524B1 (ko) 전자 장치 및 그의 동작 방법
US10909420B2 (en) Method and apparatus for continuously displaying images on basis of similarity of images
KR102368847B1 (ko) 객체에 대응하는 콘텐트를 출력하기 위한 방법 및 그 전자 장치
KR20170092772A (ko) 이미지 처리장치 및 방법
KR20170019595A (ko) 영상을 제공하는 방법 및 이를 지원하는 전자 장치
KR102348852B1 (ko) 오브젝트를 추출하는 방법 및 이를 위한 장치
US10623630B2 (en) Method of applying a specified effect to an area of an image and electronic device supporting the same
KR102305909B1 (ko) 이미지 처리 방법과 이를 지원하는 전자 장치
KR102324379B1 (ko) 휘트니스 상품 거래 플랫폼을 운용하는 서버 및 그 동작 방법
KR102391490B1 (ko) 이미지 내의 오브젝트를 트래킹하기 위한 방법 및 그 전자 장치
KR102638876B1 (ko) 전자 장치 및 그 제어 방법
KR102348366B1 (ko) 전자 장치 및 전자 장치에서 눈의 중심을 판단하는 방법
KR20220078849A (ko) 증강현실 합성 서비스를 제공하는 플랫폼 및 이를 위한 서버
KR20220078853A (ko) 증강현실 기반의 저작물을 생성하여 sns에 업로드하는 시스템
KR102519803B1 (ko) 촬영 장치 및 그 제어 방법

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
N231 Notification of change of applicant
A107 Divisional application of patent
GRNT Written decision to grant