KR20210125656A - 오브젝트들을 배치하는 이미지를 생성하는 방법 및 장치 - Google Patents

오브젝트들을 배치하는 이미지를 생성하는 방법 및 장치 Download PDF

Info

Publication number
KR20210125656A
KR20210125656A KR1020200042960A KR20200042960A KR20210125656A KR 20210125656 A KR20210125656 A KR 20210125656A KR 1020200042960 A KR1020200042960 A KR 1020200042960A KR 20200042960 A KR20200042960 A KR 20200042960A KR 20210125656 A KR20210125656 A KR 20210125656A
Authority
KR
South Korea
Prior art keywords
objects
virtual
image
determining
feature
Prior art date
Application number
KR1020200042960A
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 KR1020200042960A priority Critical patent/KR20210125656A/ko
Priority to PCT/KR2021/004349 priority patent/WO2021206447A1/ko
Publication of KR20210125656A publication Critical patent/KR20210125656A/ko
Priority to US17/961,935 priority patent/US20230037221A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • 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/761Proximity, similarity or dissimilarity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2004Aligning objects, relative positioning of parts
    • 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/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Architecture (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Geometry (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)

Abstract

복수의 오브젝트들이 재배치된 가상의 배치 이미지를 생성하는 방법 및 디바이스가 개시된다. 디바이스는 복수의 오브젝트들에 대한 이미지를 획득하고, 획득한 이미지에 기초하여 복수의 오브젝트들 각각에 대한 시각적 특징, 물리적 특징 또는 유용성 특징 중 적어도 하나를 결정하며, 시각적 특징, 물리적 특징 또는 유용성 특징 중 적어도 하나에 기초하여, 복수의 오브젝트들이 배치된 결과에 대한 데이터를 생성하고, 복수의 오브젝트들이 배치된 결과에 대한 데이터에 기초하여, 복수의 오브젝트들이 배치된 가상의 배치 이미지를 생성하며, 가상의 배치 이미지를 디스플레이할 수 있다.

Description

오브젝트들을 배치하는 이미지를 생성하는 방법 및 장치{METHOD AND APPARATUS FOR GENERATING AN IMAGE FOR REARRANGEMENT OBJECTS}
본 발명은 가정 환경에서 인간과 장치(예, 로봇) 간의 상호 작용을 위한 시스템 및 방법에 대한 것이다. 보다 상세하게, 가정 용품 또는 다른 개인 소지품을 재배치하도록 사용자에게 가이드 하는 방법 및 장치에 관한 것이다.
가정용 응용 제품에 대한 로봇 공학의 추세가 증가하고 있다. 현재 대중 시장의 가정용 로봇에는 내비게이션으로 집안을 이동하는 수단, 비디오 스트림을 입력 받는 수단 및 심박수 측정 장치와 같은 기타 센서들을 포함할 수 있다.
미래의 대중 시장의 로봇은 로봇 팔, 진공 손 또는 물체와의 상호 작용을 위한 다른 수단과 같은 물리적 상호 작용을 위한 수단을 가질 것으로 예측된다. 이러한 로봇 팔을 적용 가능한 응용 중 하나는 아이템들을 청소하고, 재배치하는 것이다.
따라서, 디바이스가 아이템들을 가상으로 아이템을 재배치하여 아이템들을 정리하는 방법에 대한 연구가 필요한 실정이다.
본 발명에 따르면, 복수의 오브젝트들을 재배치하는 시뮬레이션을 수행하는 디바이스 및 방법이 제공될 수 있다.
본 발명에 따르면, 복수의 오브젝트들이 재배치된 가상의 배치 이미지를 생성하는 디바이스 및 방법이 제공될 수 있다.
본 개시는 디바이스가 복수의 오브젝트들이 재배치된 가상의 배치 이미지를 생성하는 방법을 제공한다. 복수의 오브젝트들이 재배치된 가상의 배치 이미지를 생성하는 방법은 상기 복수의 오브젝트들에 대한 이미지를 획득하는 단계; 상기 획득한 이미지에 기초하여 상기 복수의 오브젝트들 각각에 대한 시각적 특징, 물리적 특징 또는 유용성 특징 중 적어도 하나를 결정하는 단계; 상기 시각적 특징, 상기 물리적 특징 또는 상기 유용성 특징 중 적어도 하나에 기초하여, 상기 복수의 오브젝트들이 배치된 결과에 대한 데이터를 생성하는 단계; 상기 복수의 오브젝트들이 배치된 결과에 대한 데이터에 기초하여, 상기 복수의 오브젝트들이 배치된 가상의 배치 이미지를 생성하는 단계; 및 상기 가상의 배치 이미지를 디스플레이하는 단계;를 포함할 수 있다.
본 개시의 일 실시예에 따라, 상기 유용성 특징은 상기 복수의 오브젝트들 각각에 대한 사용 빈도수, 배치되는 대상인지 여부에 대한 정보, 사용 용도에 대한 정보 또는 안정성에 대한 정보 중 적어도 하나를 포함할 수 있다.
본 개시의 일 실시예에 따라, 상기 시각적 특징, 상기 물리적 특징 또는 상기 유용성 특징 중 적어도 하나에 기초하여, 상기 복수의 오브젝트들이 배치된 결과에 대한 데이터를 생성하는 단계; 는, 상기 유용성 특징에 기초하여, 상기 복수의 오브젝트들에 포함된 제1 오브젝트에 대한 사용 빈도수를 획득하는 단계; 및 상기 사용 빈도수에 기초하여 상기 제1 오브젝트의 위치를 결정하는 단계;를 포함할 수 있다.
본 개시의 일 실시예에 따라, 상기 사용 빈도수에 기초하여 상기 제1 오브젝트의 위치를 결정하는 단계;는 상기 제1 오브젝트에 대한 사용 빈도수가 제2 오브젝트에 대한 사용 빈도수보다 큰 경우, 상기 제1 오브젝트가 상기 제2 오브젝트 보다 사용자 선호 영역에 가깝게 위치하도록 상기 제1 오브젝트의 위치를 결정하는 단계;를 포함할 수 있다.
본 개시의 일 실시예에 따라, 상기 사용자 선호 영역은 상기 복수의 오브젝트들이 배치되는 적어도 하나의 영역과 상기 디바이스와의 거리에 기초하여 결정될 수 있다.
본 개시의 일 실시예에 따라, 상기 획득한 이미지에 기초하여 상기 복수의 오브젝트들 각각에 대한 상기 시각적 특징, 상기 물리적 특징 또는 상기 유용성 특징 중 적어도 하나를 결정하는 단계;는 상기 복수의 오브젝트들 각각에 대한 위치 이동량에 기초하여 상기 복수의 오브젝트들 각각에 대한 사용 빈도수를 결정하는 단계;를 포함할 수 있다.
본 개시의 일 실시예에 따라, 상기 복수의 오브젝트들 각각에 대한 사용 빈도수를 결정하는 단계;는 상기 복수의 오브젝트들에 포함된 제1 오브젝트의 위치 변화를 적어도 하나의 이미지로부터 추적하는 단계; 상기 제1 오브젝트의 위치 변화에 대한 정보에 기초하여, 상기 제1 오브젝트의 위치 이동량을 결정하는 단계; 및 상기 위치 이동량에 기초하여, 상기 제1 오브젝트의 사용 빈도수를 결정하는 단계;를 포함할 수 있다.
본 개시의 일 실시예에 따라, 상기 시각적 특징, 상기 물리적 특징 또는 상기 유용성 특징 중 적어도 하나에 기초하여, 상기 복수의 오브젝트들이 배치된 결과에 대한 데이터를 생성하는 단계;는, 상기 시각적 특징, 상기 물리적 특징 또는 상기 유용성 특징 중 적어도 하나에 기초하여, 상기 복수의 오브젝트들에 포함된 제1 오브젝트와 다른 오브젝트들 간의 유사도를 결정하는 단계; 및 상기 제1 오브젝트와 다른 오브젝트들 간의 유사도에 기초하여, 상기 제1 오브젝트의 위치를 결정하는 단계;를 포함할 수 있다.
본 개시의 일 실시예에 따라, 상기 다른 오브젝트들과 유사도에 기초하여, 상기 제1 오브젝트의 위치를 결정하는 단계;는, 상기 제1 오브젝트와 제2 오브젝트와의 유사도가 상기 제1 오브젝트와 제3 오브젝트와의 유사도 보다 큰 경우, 상기 제1 오브젝트가 상기 제3 오브젝트 보다 상기 제2 오브젝트와 가깝게 위치하도록 상기 제1 오브젝트의 위치를 결정하는 단계를 포함할 수 있다.
본 개시의 일 실시예에 따라, 상기 시각적 특징, 상기 물리적 특징 또는 상기 유용성 특징 중 적어도 하나에 기초하여, 상기 복수의 오브젝트들이 배치된 결과에 대한 데이터를 생성하는 단계; 는, 상기 복수의 오브젝트들에 포함된 제1 오브젝트에 대한 유용성 특징에 기초하여, 상기 제1 오브젝트가 배치되는 대상인지 판단하는 단계; 및 상기 제1 오브젝트가 배치되는 대상인지 여부에 기초하여, 상기 제1 오브젝트의 위치를 결정하는 단계;를 포함할 수 있다.
본 개시의 일 실시예에 따라, 상기 복수의 오브젝트들이 배치된 결과에 대한 데이터에 기초하여, 상기 복수의 오브젝트들이 배치된 가상의 배치 이미지를 생성하는 단계;는, 상기 제1 오브젝트가 배치되는 대상이 아닌 경우, 배치되는 대상인 오브젝트들과 상기 제1 오브젝트가 구별되는 가상 배치 이미지를 생성하는 단계;를 포함할 수 있다.
본 개시의 일 실시예에 따라, 상기 가상의 배치 이미지를 디스플레이하는 단계;는 적어도 하나의 가상의 배치 이미지를 선택하는 UI를 생성하는 단계;를 포함하고, 상기 적어도 하나의 가상의 배치 이미지는 서로 다른 배치 알고리즘에 기초하여 가상으로 복수의 오브젝트들이 배치된 이미지일 수 있다.
본 개시의 일 실시예에 따라, 상기 가상의 배치 이미지를 디스플레이하는 단계;는 상기 적어도 하나의 가상의 배치 이미지 중에서 하나의 가상의 배치 이미지를 선택하는 입력을 수신하는 단계; 및 상기 선택된 가상의 배치 이미지에 따라 상기 복수의 오브젝트들을 배치하기 위한 제어 신호를 생성하는 단계;를 더 포함할 수 있다.
본 개시의 일 실시예에 따라, 상기 획득한 이미지에 기초하여 상기 복수의 오브젝트들 각각에 대한 시각적 특징, 물리적 특징 또는 유용성 특징 중 적어도 하나를 결정하는 단계;는 상기 획득한 이미지에 기초하여 상기 복수의 오브젝트들 각각을 식별하는 단계; 및 상기 식별된 오브젝트들 각각에 대응하는 상기 물리적 특징을 데이터 베이스로부터 획득하는 단계;를 포함할 수 있다.
본 개시의 일 실시예에 따라, 배치 알고리즘에 기초하여 가상 공간에서 상기 복수의 오브젝트들 각각에 대한 위치를 결정하는 단계; 를 더 포함할 수 있다.
본 개시의 일 실시예에 따라, 상기 배치 알고리즘에 기초하여 상기 가상 공간에서 상기 복수의 오브젝트들 각각에 대한 위치를 결정하는 단계;는 상기 복수의 오브젝트들에 포함된 제1 오브젝트에 대응되는 상기 시각적 특징, 상기 물리적 특징 또는 상기 유용성 특징을 제1 가상 오브젝트에 할당하는 단계; 및 상기 배치 알고리즘에 기초하여 상기 가상 공간에서 상기 제1 가상 오브젝트의 위치를 결정하는 단계;를 포함할 수 있다.
본 개시의 일 실시예에 따라, 상기 배치 알고리즘에 기초하여 상기 가상 공간에서 상기 제1 가상 오브젝트의 위치를 결정하는 단계;는, 상기 가상 공간에서 상기 제1 가상 오브젝트에 대해 작용하는 힘을 판단하는 단계; 및 상기 제1 가상 오브젝트에 대해 작용하는 힘에 기초하여, 상기 제1 가상 오브젝트의 위치를 결정하는 단계;를 포함할 수 있다.
본 개시의 일 실시예에 따라, 상기 가상 공간에서 상기 제1 가상 오브젝트에 대해 작용하는 힘을 판단하는 단계;는, 상기 가상 공간에서 상기 제1 가상 오브젝트와 제2 가상 오브젝트 사이에서 작용하는 인력은 상기 제1 가상 오브젝트와 상기 제2 가상 오브젝트와의 유사도에 기초하여 결정할 수 있다.
본 개시에 따르면, 복수의 오브젝트들이 재배치된 가상의 배치 이미지를 생성하는 디바이스가 제공될 수 있다. 복수의 오브젝트들이 재배치된 가상의 배치 이미지를 생성하는 디바이스에 있어서, 적어도 하나 이상의 인스트럭션을 저장하는 메모리; 및 상기 적어도 하나 이상의 인스트럭션을 실행함으로써 상기 디바이스를 제어하는 적어도 하나 이상의 프로세서를 포함할 수 있다.
본 개시의 일 실시예에 따라, 상기 적어도 하나 이상의 프로세서는, 상기 복수의 오브젝트들에 대한 이미지를 획득하고, 상기 획득한 이미지에 기초하여 상기 복수의 오브젝트들 각각에 대한 시각적 특징, 물리적 특징 또는 유용성 특징 중 적어도 하나를 결정하며, 상기 시각적 특징, 상기 물리적 특징 또는 상기 유용성 특징 중 적어도 하나에 기초하여, 상기 복수의 오브젝트들이 배치된 결과에 대한 데이터를 생성하고, 상기 복수의 오브젝트들이 배치된 결과에 대한 데이터에 기초하여, 상기 복수의 오브젝트들이 배치된 가상의 배치 이미지를 생성하며, 상기 가상의 배치 이미지를 디스플레이할 수 있다.
본 개시의 일 실시예에 따라, 상기 프로세서는, 상기 유용성 특징에 기초하여, 상기 복수의 오브젝트들에 포함된 제1 오브젝트에 대한 사용 빈도수를 획득하고, 상기 사용 빈도수에 기초하여 상기 제1 오브젝트의 위치를 결정할 수 있다.
본 발명에 따르면, 복수의 오브젝트들을 재배치하는 시뮬레이션을 수행하는 효과가 존재한다.
본 발명에 따르면, 복수의 오브젝트들이 재배치된 가상의 배치 이미지를 생성하는 효과가 존재한다.
다만, 일 실시예에 따른 오브젝트들을 배치하는 이미지를 생성하는 방법 및 장치가 달성할 수 있는 효과는 이상에서 언급한 것들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시의 실시 예들에 따른, 본 개시의 동작을 개략적으로 설명하기 위한 도면이다.
도 2는 본 개시의 일 실시예에 따라, 디바이스(100)가 복수의 오브젝트들이 재배치된 가상의 배치 이미지를 생성하는 방법에 대한 것이다.
도 3은 본 개시의 일 실시예에 따라, 복수의 오브젝트들에 대한 이미지를 도시한 도면이다.
도 4는 본 개시의 일 실시예에 따른, 텍스트 레이블(Text label)을 설명하기 위한 도면이다.
도 5는 본 개시의 일 실시예에 따라, 복수의 오브젝트들이 배치된 가상의 배치 이미지들을 도시한 도면이다.
도 6은 본 개시의 일 실시예에 따라, 디바이스(100)가 3D 시뮬레이션을 수행하는 흐름도이다.
도 7은 본 개시의 일 실시예에 따라, 오브젝트들 간의 유사도를 고려하여 시뮬레이션을 수행하는 방법에 대한 흐름도이다.
도 8은 본 개시의 일 실시예에 따라, 오브젝트들 간에 결정된 유사도를 도시한 도면이다.
도 9는 본 개시의 일 실시예에 따른, 오브젝트들 간의 작용하는 물리적 힘을 도시한 도면이다.
도 10은 본 개시의 일 실시예에 따라, 오브젝트들의 위치를 모델링할 때 고려되는 물리적 힘들의 관계를 도시한 그래프이다.
도 11은 본 개시의 일 실시예에 따라, 모델링의 시간 경과에 따른 오브젝트의 위치 변동을 도시한 도면이다.
도 12는 본 개시의 일 실시예에 따라, 오브젝트들의 유용성 특징을 이용하여 오브젝트를 배치하는 시뮬레이션 결과를 도시한 도면이다.
도 13은 본 개시의 일 실시예에 따라, 오브젝트의 사용 빈도수에 기초하여 오브젝트의 위치를 결정하는 방법에 대한 흐름도이다.
도 14는 본 개시의 일 실시예에 따라, 오브젝트의 사용 빈도수를 결정하는 방법에 대한 흐름도이다.
도 15는 본 개시의 일 실시예에 따라, 오브젝트의 사용 빈도수를 결정하는 방법을 도시한 도면이다.
도 16은 본 개시의 일 실시예에 따라, 오브젝트의 사용 빈도수를 결정하는 방법을 도시한 도면이다.
도 17은 본 개시의 일 실시예에 따라, 오브젝트의 사용 빈도수를 결정하는 방법을 도시한 도면이다.
도 18은 본 개시의 일 실시예에 따라, 오브젝트의 특징을 고려하여 오브젝트들의 위치를 결정하는 방법을 도시한 도면이다.
도 19는 본 개시의 일 실시예에 따라, 사용 빈도수를 고려하여 오브젝트를 배치하는 방법을 도시한 도면이다.
도 20은 본 개시의 일 실시예에 따라, 사용자 선호 영역을 결정하는 방법에 대한 도면이다.
도 21 및 도 22는 본 개시의 일 실시예에 따라, 디바이스(100)가 가상 배치 이미지를 디스플레이하는 UI를 도시한 도면이다.
도 23은 본 개시의 일 실시예에 따라, 디바이스가 가상 배치 이미지에 기초하여 복수의 오브젝트들을 배열하기 위한 제어 신호를 생성하는 방법에 대한 흐름도이다.
도 24는 본 개시의 일 실시예에 따라, 가상 오브젝트를 생성하는 방법에 대한 흐름도이다.
도 25는 본 개시의 일 실시예에 따라, 시맨틱 세그먼테이션(semantic segmentation)를 설명하기 위한 도면이다.
도 26은 본 개시의 일 실시예에 따라, 인페인팅(inpainting)을 설명하기 위한 도면이다.
도 27은 본 개시의 일 실시예에 따라, 복수의 오브젝트들에 대응하는 복수의 가상 오브젝트를 생성하는 방법을 설명하기 위한 도면이다.
도 28은 가상 오브젝트를 생성하는 방법을 도시한 도면이다.
도 29는 본 개시의 일 실시예에 따라, 디바이스가 특정 영역에 위치한 오브젝트들의 재배열을 수행하는 방법을 도시한 도면이다.
도 30은 본 개시의 일 실시예에 따른 디바이스(100)의 구성을 나타내는 블록도이다.
이하, 본 개시의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
실시 예를 설명함에 있어서 본 개시가 속하는 기술 분야에 익히 알려져 있고 본 개시와 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 개시의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다.
마찬가지 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시되었다. 또한, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 각 도면에서 동일한 또는 대응하는 구성요소에는 동일한 참조 번호를 부여하였다.
본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 개시는 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 개시가 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 본 개시의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시는 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이 때, 본 실시예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다. 또한 실시예에서 ‘~부’는 하나 이상의 프로세서를 포함할 수 있다.
도 1은 본 개시의 실시 예들에 따른, 본 개시의 동작을 개략적으로 설명하기 위한 도면이다.
본 개시에 따라, 정리되지 않은 상태의 아이템들을 정리하는 방법이 개시될 수 있다. 이때, 디바이스(100)는 복수의 아이템들이 재배치된 가상의 배치 이미지를 생성할 수 있다. 도 1을 참고할 때, 특정한 공간에 아이템들이 정리되지 않는 상태로 존재할 수 있다. 예로, 사람이 거주하는 집의 객실, 바닥 등에 개인 소지품 등이 정리되지 않은 상태일 때, 아이템들을 정리하기 위해 본 개시가 사용될 수 있다.
본 발명은 한정되지 않은 예로, 가정용 로봇, AR 안경, 이동 통신 장치, IoT, 기타 가전 제품에 사용될 수 있다.
본 개시의 일 실시예에 따른 디바이스(100)는 다양한 형태로 구현될 수 있다. 예를 들어, 디바이스(100)는, 스마트 TV, 셋탑 박스, 휴대폰, 태블릿 PC, 디지털 카메라, 노트북 컴퓨터(laptop computer), 데스크탑, 전자책 단말기, 디지털 방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, MP3 플레이어, 착용형 기기(wearable device), AR 안경, 로봇 등을 포함할 수 있다. 또한, IoT 환경에서 모든 가전 제품은 다른 가전 제품과 연결될 수 있으며, 예를 들어 디바이스는 감시 카메라, 마이크 등과 연결될 수 있다. 다만 디바이스(100)는 전술된 예에 한정되는 것은 아니고, 인간과 컴퓨터의 상호 작용을 위한 명령을 수신할 수 있는 장치면 어느 것이든 가능할 수 있다. 디바이스(100)는 아이템들을 재배치하는 시뮬레이션을 수행할 수 있는 장치이면 어느 것이든 가능할 수 있다. 또한, 디바이스(100)는 시뮬레이션을 통해 생성된 아이템을 재배치하는 수개의 옵션들을 사용자에게 디스플레이할 수 있는 장치이면 어느 것이든 가능할 수 있다.
본 개시의 일 실시예에 따라, 디바이스(100)는 시뮬레이션의 결과 대로 아이템들을 정리할 수 있는 팔을 가진 로봇(120)일 수도 있다. 이때, 디바이스(100)는 사용자의 선택에 따라, 생성된 가상의 배치 이미지에 따라 아이템들을 정리할 수 있다.
본 개시의 일 실시예에 따라, 디바이스(100)가 AR 안경(130)인 경우, 사용자가 착용한 AR 안경이 주변 환경을 촬영할 수 있다. AR 안경(130)은 촬영한 이미지에 기초하여 아이템들을 재배치하는 시뮬레이션을 수행할 수 있다. 또한, AR 안경(130)은 아이템을 재배치하는 시뮬레이션의 결과에 기초하여 생성된 선택 인터페이스를 사용자에게 디스플레이할 수 있다. 이때, 디바이스(100)는 사용자의 선택에 따라, 외부 디바이스가 생성된 가상의 배치 이미지에 따라 아이템들을 정리할 수 있도록 외부 디바이스로 명령을 전송할 수도 있다.
이때, 외부 디바이스는 디바이스(100)와 분리된 별개의 장치를 의미할 수 있다. 외부 디바이스는 디바이스(100)로부터 수신한 제어 신호에 기초하여, 디바이스(100)의 아이템 재배치 시뮬레이션의 결과에 따라 아이템들을 이동시킬 수 있다.
본 개시에서, 디바이스(100)는 아이템들을 배치 알고리즘에 따라 배치하는 시뮬레이션을 수행할 수 있다. 즉, 배치 알고리즘에 따른 시뮬레이션 결과에 따라, 아이템들의 각각의 위치는 기존의 위치와 다른 새로운 위치로 결정될 수 있다. 이때, 디바이스(100)는 시뮬레이션을 수행하여, 아이템들의 위치뿐 만이 아니라, 아이템이 놓여지는 방향, 각도 등을 결정할 수 있다. 이하 본 개시에서는 설명의 편의를 위하여, 상술한 바와 같이 아이템들의 새로운 위치, 방향, 각도 등을 결정하는 것을 재배치(rearranging), 배치, 정리 등으로 설명한다.
설명의 편의성을 위해, 디바이스(100)가 아이템들을 이동시킬 수 있는 로봇 손을 가진 로봇(120)인 경우를 예로 설명한다. 로봇(120)이 정리되어 있지 않은 아이템들을 재배치(rearranging)하는 방법(이하, 배치 알고리즘)에는 무한한 방법이 존재할 수 있다.
도 1을 참고할 때, 아이템들은 각 배치 알고리즘에 따라 정리될 수 있다. 한정되지 않은 예로, 도 1의 제1 배치 알고리즘은 아이템의 클래스에 따라 아이템들이 정리된 상태를 도시한 도면이다. 제1 배치 알고리즘에 따를 때, 아이템들의 클래스를 고려하여, 마커들이 가깝게 배치되고, 건전지들이 가깝게 배치된 것을 확인할 수 있다.
또한, 도 1의 제2 배치 알고리즘은 정리된 아이템의 부피를 고려하여, 아이템들 간의 빈틈이 최소화 되도록 아이템이 정리된 상태를 도시한 도면이다. 제2 배치 알고리즘에 따를 때, 아이템들 간의 빈틈이 최소화 되도록, 아이템들이 차곡차곡 쌓이도록 배치된 것을 확인할 수 있다.
이 때, 아이템을 재배치하는 한정되지 않은 방법(배치 알고리즘)의 예로, 공간 요소를 고려하여 빈틈 없이 아이템을 정돈(컴팩트 한 배열)하는 방법, 심미적 요소를 고려하여 정돈하는 방법, 편의성을 고려하여 정돈하는 방법 등이 있을 수 있다.
또한, 로봇(120)이 아이템을 재배치하는 경우 아이템들의 유용성 속성을 고려할 필요가 있다. 보다 상세하게, 로봇(120)이 아이템을 재배치하는 경우, 임의의 아이템이 이동될 수 없는 경우를 고려해야 한다. 예를 들어, 아이템이 물로 채워진 컵인 경우, 물로 채워진 컵을 수평으로 놓을 수 없다. 만약, 로봇(120)이 이러한 작업을 수행하면 사용자의 아이템이 손상 될 수 있다. 즉, 임의의 아이템은 아이템이 접착제로 특정 공간에 붙어 있는 경우, 아이템을 이동시키면 위험한 경우(예, 마개로 닫혀있지 않은 상태로 물로 채워진 유리병) 등과 같은 여러 가지 이유로 인해 이동될 수 없다. 또한, 사용자 역시 아이템이 현재 위치한 특정 위치에 적합한 경우, 아이템을 이동시키지 않을 것이다. 따라서, 로봇(120)이 아이템을 배치하기 위해서는 객체의 유용성 특징(usability property)을 고려할 필요가 있으며, 본 명세서에서 객체의 유용성 특징(usability property)은 상술한 바와 같은 객체의 습관 속성(habit properties)을 의미할 수 있다.
본 개시는 정렬되지 않는 아이템(이하, 오브젝트)을 배열하는 방법 및 정렬되지 않는 오브젝트들을 배열하는 디바이스(100)에 대한 다수의 실시 예를 개시한다. 본 개시의 일 실시예에 따라, 디바이스(100)는 특정 영역에 위치한 오브젝트들의 재배열을 수행하도록, 사용자의 명령을 수신할 수 있다. 또한, 디바이스(100)는 특정 영역에 대해 적어도 하나의 이미지 (2D 또는 RGBD)를 촬영할 수 있다.
본 개시의 일 실시예에 따라, 디바이스(100)는 적어도 하나의 이미지에서 오브젝트들에 대해 시맨틱 세그먼테이션(semantic segmentation)을 수행할 수 있다. 디바이스(100)는 분할된 오브젝트들을 이미지로부터 하나씩 제거하고, 인페인팅(inpainting)으로 갭을 채울 수 있다. 디바이스(100)는 세그먼트로 남은 오브젝트들이 없을 때까지, 상술한 내용을 반복하여 수행할 수 있다.
본 개시의 일 실시예에 따라, 디바이스(100)는 영역 상에 있는 오브젝트들 및 평면 등과 같은 움직일 수 없는 3D 물체의 3D 재구성을 수행할 수 있다. 디바이스(100)는 3D로 재 구성된 영역에서, 적어도 2개의 가능한 3D 오브젝트들의 재 배열들을 계산할 수 있다. 디바이스(100)는 적어도 두 개의 가능한 재배열을 비디오 파일들의 비트맵 이미지들로 렌더링할 수 있다.
또한, 본 개시는 디바이스(100)가 생성한 다수의 아이템을 배열하는 방법 중에서 하나를 선택하기 위한 사용자 인터페이스에 관한 다수의 실시 예를 개시한다. 적어도 2 개의 가능한 재배열이 사용자에게 제시될 수 있다.
본 개시의 일 실시예에 따라, 디바이스(100)는 사용자에 의해 적어도 2 개의 가능한 재배열 중 하나를 선택 받을 수 있다. 또한, 디바이스(100)는 소지품(아이템들)에 대해 선택된 재 배열을 수행하기 위해, 로봇(외부 디바이스(100))에 명령을 보낼 수 있다. 또는, 디바이스(100)가 선택된 재배열을 수행할 수도 있다.
본 개시의 일 실시예에 따라, 디바이스(100)는 오브젝트를 3D로 인식하는 기능, 오브젝트들을 시각화하는 기능, 물리적으로 모델링하는 기능을 수행할 수 있다.
본 개시의 일 실시예에 따라, 시각화를 위한 2D 접근법은 오브젝트들의 폐쇄된 부분에 대해 재구성을 수행하기 위한 인 페인팅 기술(inpainting technology)을 요구하는데 사용될 수 있다.
본 개시의 일 실시예에 따라, 디바이스(100)는 오브젝트 템플릿들의 3D 재구성 및 완벽한 장면 이해를 위해 엔드-투-엔드 딥 러닝 접근법을 사용할 수 있다.
본 개시의 일 실시예에 따라, 디바이스(100)는 장면(예, 획득한 이미지)에 대해 깊은 의미론적 이해(semantic understanding)를 수행하여, 개인 소지품들에 대해 적용할 수 있는 최상의 재배열 결과를 얻을 수 있다.
본 개시에 대한 보다 자세한 내용은 후술된다.
도 2는 본 개시의 일 실시예에 따라, 디바이스(100)가 복수의 오브젝트들이 재배치된 가상의 배치 이미지를 생성하는 방법에 대한 것이다.
본 개시의 일 실시예에 따라, 디바이스(100)는 가정 환경에서 복수의 물리적 오브젝트들의 재배열을 계획하는 방법을 제공할 수 있다.
도 1에서 상술한 아이템들은 도2 의 오브젝트들에 대응될 수 있다. 본 개시에서 오브젝트란, 디바이스(100)가 정리를 수행해야 하는 특정 공간에 규칙성 없이 위치한 아이템을 의미할 수 있다. 이때, 오브젝트에 해당하는 아이템의 종류, 특성 등에는 제한이 존재하지 않는다. 복수의 오브젝트들은 선반, 바닥, 의자, 테이블 등에 위치할 수 있으며, 상술한 예에 한정하지 않는다. 또한, 본 명세서에서 오브젝트들은 서로 모양, 크기 등이 다를 수 있다.
단계 S210에서, 디바이스(100)는 복수의 오브젝트들에 대한 이미지를 획득할 수 있다.
본 개시의 일 실시예에 따라 디바이스(100)는 복수의 물리적 오브젝트들에 대해 촬영된 이미지를 외부 기기로부터 획득할 수 있다. 예로, 디바이스(100)와 유선 또는 무선으로 연결된 외부 디바이스가 복수의 물리적 오브젝트들에 대해 이미지를 촬영하고, 촬영된 이미지를 디바이스(100)로 전송할 수 있다.
본 개시의 다른 일 실시예에 따라 디바이스(100)는 복수의 물리적 오브젝트들에 대해 적어도 하나의 이미지를 촬영할 수 있다.
본 명세서에서, 이미지(image) 또는 픽처는 정지영상, 복수의 연속된 정지영상(또는 프레임)으로 구성된 동영상, 또는 비디오를 나타낼 수 있다. 일 예로, 본 개시에서 이미지는 RBG 또는 RGBD 이미지를 의미할 수 있다.
일 예로, 디바이스(100)는 복수의 오브젝트들에 대해 하나의 이미지만 촬영할 수도 있다.
다른 일 예로, 디바이스(100)는 복수의 오브젝트들에 대해 복수 장의 이미지를 촬영할 수 있다. 만약, 디바이스(100)가 복수의 오브젝트들에 대해 한 장 이상의 이미지를 획득하는 경우, 디바이스(100)는 물체의 물리적인 시각적 특성을 추가적으로 인식할 수 있을 것이다.
본 개시의 일 실시예에 따라, 디바이스(100)는 복수의 오브젝트들에 대한 복수장의 이미지들을 서로 다른 시간에 촬영할 수 있다. 한정되지 않는 일 예로, 디바이스(100)는 한달 동안 하루에 두 번 복수의 오브젝트들에 대한 이미지를 획득할 수 있다. 이 경우, 디바이스(100)는 동일한 레이아웃(layout)으로 오브젝트들을 여러 번 촬영하여, 오브젝트들에 대한 추가적인 유용성 특징(usability characteristics)을 획득할 수 있다.
본 개시의 일 실시예에 따라, 오브젝트에 대한 이미지는 디바이스(100)가 획득하는 오브젝트의 시각적 특징을 개선하기 위해 다른 위치에서 촬영될 수 있다. 이때, 본 개시에서 오브젝트의 시각적 특징이란, 오브젝트의 모양, 질감, 크기 등에 대한 정보를 의미할 수 있다.
또한 오브젝트에 대한 이미지는 디바이스(100)가 획득하는 오브젝트의 물리적 특징을 개선하기 위해 다른 위치에서 촬영될 수 있다. 이때, 본 명세서에서 오브젝트의 물리적 특징이란, 오브젝트의 무게, 마찰 계수, 무게 분포, 구부릴 수 있는지 여부, 신축성 등에 대한 정보를 의미할 수 있다.
본 개시의 일 실시예에 따라, 정렬되지 않은 복수의 오브젝트들에 대한 이미지들은 다양한 조건들에서 촬영된 이미지들일 수 있다. 보다 상세하게, RGB 이미지 및 RGBD 이미지는 다양한 촬영 시간들, 다양한 촬영 각도들, 다양한 촬영 조명 조건들이 결합된 촬영 조건 하에서 촬영 될 수 있다.
오브젝트들은 특정한 각도에서는 전체가 보여질 수 있다. 또한, 오브젝트들은 다른 각도에서는 다른 오브젝트들에 의해 부분적으로 가려질 수 있다. 따라서, 디바이스(100)는 다양한 촬영 각도들에 촬영한 복수의 오브젝트들에 대한 이미지들을 획득할 필요가 있다.
도 3은 본 개시의 일 실시예에 따라, 복수의 오브젝트들에 대한 이미지를 도시한 도면이다.
본 개시의 일 실시예에 따라, 디바이스(100)는 RGB 및 IR 카메라(camera)를 포함할 수 있다.
본 개시의 일 실시예에 따라, 조명 조건들은 여러 가지 조명 기술들을 적용함으로써 변경될 수 있다. 이는 디바이스(100)가 오브젝트들을 인식하는 것을 개선하기 위한 방법이다. 상술한 조명 조건들에 대해 한정되지 않은 예로, 디바이스(100)(예: 로봇) 본체에 위치한 램프를 켜거나 끄는 것, 구조형 광(structured light)을 사용하는 것, Tof(Time-Of-Flight) 방식의 조명을 사용하는 것, 백색, 적색, 녹색, 청색에 한정되지 않고 다중 스펙트럼(multispectral) 조명 및 하이퍼스펙트럴(hyperspectral) 조명과 같은 다양한 스펙트럼 대역에서 조명을 사용하는 것, 변조 광(modulated light) 을 사용하는 것 등을 포함할 수 있다.
도 3(a)는 RGBD 카메라에서 획득한 Tof(Time-Of-Flight) 방식의 이미지를 의미할 수 있다. 또한, 도 3(b)는 RGBD 카메라에서 획득한 구조형 광(structured light)의 이미지를 의미할 수 있다.
단계 S220에서, 디바이스(100)는 획득한 이미지에 기초하여 복수의 오브젝트들 각각에 대한 시각적 특징, 물리적 특징 또는 유용성 특징 중 적어도 하나를 결정할 수 있다.
단계 S220에서, 오브젝트들은 디바이스(100)에 의해 인식될 수 있다. 이때, 디바이스(100)가 오브젝트들을 인식한 결과는 각 오브젝트의 시각적 특징, 오브젝트의 물리적 특징 또는 오브젝트의 유용성 특징 중 적어도 하나로 정의될 수 있다.
본 명세서에서, 오브젝트의 시각적 특징은 오브젝트의 모양, 크기, 질감, 반사 표면과 같은 광학 특성 등을 의미할 수 있다.
본 명세서에서, 오브젝트의 물리적 특징은 오브젝트의 무게, 무게 분포, 굽힘(bending) 또는 신축성(stretching capabilities), 마찰 계수 등을 의미할 수 있다.
본 명세서에서, 오브젝트의 유용성 특징은 오브젝트의 위치 변경 여부 및 위치 변경 빈도, 사용 빈도수, 오브젝트가 쓰레기(garbage)인지 여부(제거 대상 여부), 오브젝트가 사용되는 용도, 오브젝트를 기울이거나 잡았을 때 안전한지 등에 대한 정보를 의미할 수 있다.
본 개시의 일 실시예에 따라, 디바이스(100)는 획득한 이미지에 기초하여, 복수의 오브젝트들 각각을 식별할 수 있다. 또한, 식별된 각각의 오브젝트들에 대해 특징을 결정할 수 있다.
디바이스(100)가 획득한 이미지에 기초하여 복수의 오브젝트들 각각에 대한 유용성 특징을 결정하는 방법은 하기의 도면들(도 14 내지 도 17)에서 보다 자세하게 후술된다.
본 개시의 일 실시예에 따라, 디바이스(100)는 획득한 이미지에 기초하여 복수의 오브젝트들 각각에 대한 물리적 특징을 결정하기 위해, 오브젝트들 각각에 대응하는 대한 물리적 특징에 대한 파라미터를 데이터베이스로부터 획득할 수 있다. 그리고, 디바이스(100)는 오브젝트들 각각에 대한 물리적 특징에 대한 파라미터를 텍스트 레이블(Text label)로 생성할 수 있다.
도 4는 본 개시의 일 실시예에 따른, 텍스트 레이블(Text label)을 설명하기 위한 도면이다.
상술한 바와 같이, 오브젝트들은 텍스트 레이블(Text label)로 설명될 수 있다. 특히, 텍스트 레이블은 오브젝트의 무게, 마찰 계수 등의 평균 물리적 특징에 대한 파라미터를 데이터베이스에서 검색하는 데 사용될 수 있다.
도 4(a)는 복수의 오브젝트들(410)과 복수의 오브젝트들(410) 중의 하나의 오브젝트인 플립차트 마커(flipchart marker)(420)를 도시하고 있다.
또한, 도 4(b)는 플립차트 마커(420)의 물리적 파라미터가 정리된 텍스트 레이블을 도시하고 있다. 도 4(b)를 참고하면, 플립차트 마커(420)의 평균 무게는 15g, 마찰 계수는 0.2, 질량 중심(Center of mass)은 중심, 구부러짐(Bendable)은 없음, 신축성(Stretchable)은 없음, 위험성(Dangerous)은 없는 것을 확인할 수 있다. 즉, 도 4(b)와 같은 물리적 특성을 플립차트 마커(420)가 갖고 있는 것을 확인할 수 있다.
도 4(b)는 설명의 편의를 위해, 복수의 오브젝트들(410) 중 하나의 오브젝트인 플립차트 마커(420)에 대한 텍스트 레이블을 도시하였으나, 이에 한정되지 않는다. 즉, 텍스트 레이블은 복수의 오브젝트들(410) 각각에 대한 물리적 파라미터를 저장할 수 있을 것이다.
다른 실시 예에서, 엔드-투-엔드 심층 신경망(end-to-end deep neural network)은 엔드-투-엔드 방식(end-to-end manner)으로 모든 예측에 대해 학습될 수 있다.
또한, 오브젝트의 물리적 특성들을 결정하기 위한 방법은 전술한 예에 한정되지 않는다.
단계 S230에서, 디바이스(100)는 시각적 특징, 물리적 특징 또는 유용성 특징 중 적어도 하나에 기초하여, 복수의 오브젝트들이 배치된 결과에 대한 데이터를 생성할 수 있다.
본 개시의 일 실시예에 따라, 디바이스(100)는 유용성 특징에 기초하여, 복수의 오브젝트들에 포함된 제1 오브젝트에 대한 사용 빈도수를 획득할 수 있다. 또한, 디바이스(100)는 사용 빈도수에 기초하여 제1 오브젝트의 위치를 결정할 수 있다. 일 예로, 디바이스(100)가 사용 빈도수에 기초하여 제1 오브젝트의 위치를 결정하는 경우, 디바이스(100)는 제1 오브젝트에 대한 사용 빈도수가 제2 오브젝트에 대한 사용 빈도수보다 큰 경우, 제1 오브젝트가 제2 오브젝트 보다 사용자 선호 영역에 가깝도록 제1 오브젝트의 위치를 결정할 수 있다. 이때, 제1 오브젝트 및 제2 오브젝트는 복수의 오브젝트들에 포함된 임의의 오브젝트를 의미할 수 있다. 보다 자세한 사항은 도 13 내지 도 20에서 후술된다.
본 개시의 일 실시예에 따라, 디바이스(100)는 시각적 특징, 물리적 특징 또는 유용성 특징 중 적어도 하나에 기초하여, 복수의 오브젝트들에 포함된 제1 오브젝트와 다른 오브젝트들 간의 유사도를 결정할 수 있다. 또한, 디바이스(100)는 다른 오브젝트들 간의 유사도에 기초하여, 제1 오브젝트의 위치를 결정할 수 있다.
일 예로, 디바이스(100)는 다른 오브젝트들과의 유사도에 기초하여, 제1 오브젝트의 위치를 결정하는 경우, 제1 오브젝트와 제2 오브젝트와의 유사도가 제1 오브젝트와 제3 오브젝트와의 유사도 보다 큰 경우, 제1 오브젝트가 제3 오브젝트 보다 제2 오브젝트와 가깝게 위치하도록 제1 오브젝트의 위치를 결정할 수 있다. 이때, 제1 오브젝트, 제2 오브젝트 및 제3 오브젝트는 복수의 오브젝트들에 포함된 임의의 오브젝트를 의미할 수 있다. 보다 자세한 사항은 도 7 내지 11에서 후술된다.
본 개시의 일 실시예에 따라, 디바이스(100)는 복수의 오브젝트들에 포함된 제1 오브젝트에 대한 유용성 특징에 기초하여, 제1 오브젝트가 배치되는 대상인지 판단할 수 있다. 또한, 디바이스(100)는 제1 오브젝트가 배치되는 대상인지 여부에 기초하여, 제1 오브젝트의 위치를 결정할 수 있다. 보다 자세한 사항은 도 12에서 후술된다.
본 개시의 일 실시예에 따라, 디바이스(100)는 배치 알고리즘에 기초하여 가상 공간에서 복수의 오브젝트들 각각에 대한 위치를 결정할 수 있다. 도 5에서 후술된다.
또한, 디바이스(100)는 복수의 오브젝트들에 포함된 제1 오브젝트에 대응되는 제1 가상 오브젝트를 생성할 수 있다. 본 명세서에서 복수의 오브젝트들 각각에 대한 가상 오브젝트들이 생성될 수 있으며, 가상 오브젝트는 시뮬레이션을 수행할 때 사용되는 3D 오브젝트에 대응될 수 있다. 보다 자세한 설명은 도 24 내지 도 28에서 후술된다.
일 예로, 디바이스(100)는, 배치 알고리즘에 기초하여 가상 공간에서 복수의 오브젝트들 각각에 대한 위치를 결정하는 경우, 복수의 오브젝트들에 포함된 제1 오브젝트에 대응되는 시각적 특징, 물리적 특징 또는 유용성 특징을 제1 가상 오브젝트에 할당할 수 있다. 또한, 디바이스(100)는 배치 알고리즘에 기초하여 가상 공간에서 상기 제1 가상 오브젝트의 위치를 결정할 수 있다. 도 5에서 후술된다.
일 예로, 디바이스(100)는, 배치 알고리즘에 기초하여 가상 공간에서 제1 가상 오브젝트의 위치를 결정하는 경우, 가상 공간에서 제1 가상 오브젝트에 대해 작용하는 힘을 판단할 수 있다. 또한, 디바이스(100)는 제1 가상 오브젝트에 대해 작용하는 힘에 기초하여, 제1 가상 오브젝트의 위치를 결정할 수 있다.
일 예로, 디바이스(100)는 가상 공간에서 제1 가상 오브젝트에 대해 작용하는 힘을 판단하는 경우, 가상 공간에서 상기 제1 가상 오브젝트와 제2 가상 오브젝트 사이에서 작용하는 인력은 상기 제1 가상 오브젝트와 상기 제2 가상 오브젝트와의 유사도에 기초하여 결정할 수 있다. 도 7 내지 도 10에서 후술된다.
즉, 디바이스(100)는 3D 시뮬레이션을 이용하여, 추출된 특징들이 부여된 가상 오브젝트들이 가상 공간에서 배치 알고리즘에 따라 어떻게 배치될 수 있는지 시뮬레이션을 수행할 수 있다. 보다 상세하게 디바이스(100)는 인식된 복수의 물리적 오브젝트들에 대해 적어도 하나의 사전 설정 재배치(Preset of repositioning)를 수행할 수 있다.
본 명세서에서, 사전 설정 재배치란 시뮬레이션을 수행하여 복수의 오브젝트들 각각에 대응하는 가상 오브젝트들을 생성하고, 결정된 특징 및 가상 공간의 특징에 기초하여, 가상 오브젝트들을 배치 알고리즘에 따라 가상 공간에서 배치하는 것을 의미할 수 있다. 즉, 사전 설정 재배치(Preset of repositioning)는 오브젝트들의 초기 위치와 다른 위치로 3D 오브젝트들(가상 오브젝트들)을 배치하는 것을 의미할 수 있다. 또한, 사전 설정 재배치는 이때, 각 배치 알고리즘에 따라 수행될 수 있는바, 사용자가 선택할 수 있는 각 옵션에 대응될 수 있다.
본 명세서에서, 사전 설정 재배치는 가상 물리 시뮬레이션(virtual physical simulation)에 의해 수행될 수 있다. 사전 설정 재배치는 오브젝트의 물리적 특징, 오브젝트의 시각적 특징 또는 오브젝트의 유용성 특징 중 적어도 하나를 사용하여 수행될 수 있다.
본 개시의 일 실시예에 따라, 하나 이상의 사전 설정 재배치(Preset of repositioning)가 있을 수 있다. 예를 들어, 제1 사전 설정 재배치는 후술되는 간단한 3D 오브젝트 포지셔닝(3D object positioning)에 의해 수행 될 수 있는 반면, 다른 오브젝트 사전 설정 재배치는 물리적 3D 시뮬레이션(physical 3D simulation)에 의해 수행 될 수 있다.
바람직한 실시 예에서, 사전 설정 재배치는 3D 오브젝트들(가상 오브젝트들)의 위치에 대한 물리적 시뮬레이션(physical simulation)에 의해 수행될 수 있다.
간단한 예시적인 실시 예에서, 3D 오브젝트들은 3D 렌더링 소프트웨어 내에 배치될 수 있다. 이때, 3D 렌더링 소프트웨어는 모든 오브젝트들에 대해 간단한 중력 및 통합 마찰 계수를 설정할 수 있는 기능을 가진 소프트웨어를 의미할 수 있으며, 한정되지 않은 실시예로, 3D 렌더링 소프트웨어는 Blender ⓒ를 포함할 수 있다. 본 개시의 일 실시예에 따라, 3D 오브젝트들은 평면 위에 하나씩 배치될 수 있다. 또한, 3D 오브젝트들은 평면보다 높이 위치한 어떤 지점에서 중력에 의해 평면에 떨어지도록 시뮬레이션이 수행될 수 있다. 이 절차에 의해 오브젝트들은 서로 매우 가깝게 배치될 수 있다. 상술한 시뮬레이션 방법은 가장 간단하게 시뮬레이션을 수행하는 실시 예일 수 있다. 이 절차 후에 다른 실시 예에서, 가상 수직 벽(virtual vertical walls)은 복수의 오브젝트들을 함께 잡을 수 있다. 보다 자세한 내용은 하기의 도면들에서 후술된다.
단계 S240에서, 디바이스(100)는 정돈된 결과에 대한 데이터에 기초하여, 배치 알고리즘에 따라 복수의 오브젝트들이 정돈된 가상 배치 이미지를 생성할 수 있다.
보다 상세하게, 디바이스(100)는 오브젝트의 물리적 특징, 오브젝트의 시각적 특징 또는 오브젝트의 유용성 특징 중 적어도 하나를 고려하여, 적어도 하나의 시각적 표현으로서 적어도 하나의 사전 재배치 설정의 결과를 렌더링할 수 있다. 이때, 적어도 하나의 시각적 표현 각각은 적어도 하나의 사전 설정 재배치(Preset of repositioning)에 대응될 수 있다.
전술한 방법에 따라 시뮬레이터에 의해 재배치 된 오브젝트들은 블렌더 등과 같은 다양한 소프트웨어에 기초하여 시각적으로 렌더링될 수 있다.
도 5는 본 개시의 일 실시예에 따라, 복수의 오브젝트들이 배치된 가상의 배치 이미지들을 도시한 도면이다.
도 5를 참고하여, 단계 S230 및 S240을 보다 자세하게 설명할 수 있다.
단계 S230에서, 디바이스(100)는 시각적 특징, 물리적 특징 또는 유용성 특징 중 적어도 하나에 기초하여, 복수의 오브젝트들이 배치된 결과에 대한 데이터를 생성하기 위하여, 복수의 오브젝트들에 대하여 가상 오브젝트들을 생성할 수 있다. 이에 대한, 보다 자세한 설명은 하기의 도 24 내지 28에서 후술될 수 있다.
디바이스(100)는 가상 공간에 생성된 가상 오브젝트들을 배치 알고리즘에 따라 배치할 수 있다. 즉, 디바이스(100)는 적어도 하나의 배치 알고리즘(예, 재배열 알고리즘)을 3D로 재구성된 가상 오브젝트에 적용할 수 있다. 이때, 디바이스(100)는 가상 공간에서 배치한 결과에 기초하여, 배치 알고리즘에 따라 복수의 오브젝트들이 정돈된 결과에 대한 데이터를 생성할 수 있다.
본 개시의 일 실시예에 따라, 배치 알고리즘은 의미적 유사성 기반의 알고리즘, 컬러 유사성 기반의 알고리즘, 소형화(compactness) 기반의 알고리즘 등을 포함할 수 있다.
그 후, 단계 S240에서 디바이스(100)는 복수의 오브젝트들이 배치된 결과에 대한 데이터에 기초하여, 복수의 오브젝트들이 배치된 가상의 배치 이미지를 생성할 수 있으며, 도 5는 가상 배치 이미지에 대응될 수 있다.
먼저, 도 5(a)를 참고 할 때, 도 5(a)의 왼쪽 이미지는 디바이스(100)가 단계 S210에서 획득한 복수의 오브젝트들에 대한 이미지(초기 이미지)일 수 있다. 그리고, 디바이스(100)는 제1 배치 알고리즘에 따라, 가상 공간에서 가상 오브젝트들을 배치할 수 있다. 즉, 이 단계에서 디바이스(100)는 제1 배치 알고리즘에 따라 가상 오브젝트들에 대해 3D 시뮬레이션을 수행할 수 있다. 예로, 제1 배치 알고리즘이 유사성 기반의 알고리즘인 경우, 디바이스(100)는 도 5(a)의 오른쪽 이미지와 같은 제1 가상 배치 이미지를 생성할 수 있다. 즉, 도 (a)의 오른쪽 이미지를 참고할 때, 비슷한 유형의 오브젝트들이 가깝게 나열된 것을 확인할 수 있다.
마찬가지로, 도 5(b)를 참고 할 때, 디바이스(100)는 제2 배치 알고리즘에 따라 가상 공간에서 가상 오브젝트들을 배치할 수 있다. 예로, 제2 배치 알고리즘이 소형화 기반의 알고리즘인 경우, 디바이스(100)는 도 5(b)의 오른쪽 이미지와 같은 제2 가상 배치 이미지를 생성할 수 있다.
S250 단계에서, 디바이스(100)는 가상 배치 이미지를 디스플레이 할 수 있다.
디바이스(100)는 가상의 배치 이미지를 디스플레이하는 경우, 디바이스(100)는 적어도 하나의 가상의 배치 이미지를 선택할 수 있도록 디스플레이하는 UI를 생성할 수 있다. 이때, 적어도 하나의 가상의 배치 이미지는 서로 다른 배치 알고리즘에 기초하여 가상으로 복수의 오브젝트들이 배치된 이미지일 수 있다.
본 개시의 일 실시예에 따라, 디바이스(100)는 각 배치 알고리즘들에 대응되는 적어도 하나의 가상 배치 이미지를 디스플레이할 수 있다. 또한 디바이스(100)는 디스플레이된 적어도 하나의 가상 배치 이미지들 중에서 하나를 선택하는 입력을 사용자로부터 수신할 수 있다.
보다 자세한 설명은 하기의 도 21 내지 25에서 후술된다.
도 6은 본 개시의 일 실시예에 따라, 디바이스(100)가 3D 시뮬레이션을 수행하는 흐름도이다.
보다 상세하게, 디바이스(100)는 배치 알고리즘에 기초하여 가상 공간에서 복수의 오브젝트들 각각에 대한 위치를 결정할 수 있다.
단계 S610에서, 디바이스(100)는 복수의 오브젝트들에 포함된 제1 오브젝트에 대응되는 제1 가상 오브젝트를 생성할 수 있다.
본 개시에서 가상 오브젝트란, 디바이스(100)가 가상 공간에서 3D 시뮬레이션을 수행하기 위해 생성하는 3D 오브젝트로, 실제 오브젝트에 대응하는 3D 가상 오브젝트일 수 있다. 가상 오브젝트를 생성하는 방법은 하기의 도 24 내지 28에서 보다 자세하게 후술된다.
단계 S620에서, 디바이스(100)는 복수의 오브젝트들에 포함된 제1 오브젝트에 대응되는 시각적 특징, 물리적 특징 또는 유용성 특징을 제1 가상 오브젝트에 할당할 수 있다.
단계 S630에서, 디바이스(100)는 배치 알고리즘에 기초하여 가상 공간에서 제1 가상 오브젝트의 위치를 결정할 수 있다.
본 개시에서 가상 공간이란, 3D 시뮬레이션을 수행하기 위한 가상 공간을 의미할 수 있다. 오브젝트에 대해 작용하는 가상 공간의 힘 및 가상 공간 내에서 오브젝트들 간의 작용하는 힘 등을 변경하여 오브젝트들의 새로운 위치를 결정할 수 있다.
도 7은 본 개시의 일 실시예에 따라, 오브젝트들 간의 유사도를 고려하여 시뮬레이션을 수행하는 방법에 대한 흐름도이다.
도 7은 전술한 도2의 단계 S230에 대한 구체적인 실시예일 수 있다. 보다 자세하게, 도 7은 오브젝트들 간의 유사도를 고려하여 복수의 오브젝트들을 배치하는 경우일 수 있다.
본 개시의 일 실시예에 따라, 디바이스(100)가 오브젝트들의 위치를 재배치하는 시뮬레이션을 수행할 때, 디바이스(100)는 오브젝트들 간의 시맨틱 유사성(semantic similarity)을 이용하여, 배치 알고리즘에 따라 복수의 오브젝트들이 배치된 결과에 대한 데이터를 생성할 수 있다.
이때, 복수의 오브젝트들 간의 유사도란, 오브젝트들 간의 유사한 정도를 나타내는 값, 수치 등을 의미할 수 있다. 또한, 유사도란 상술한 시맨틱 유사성(semantic similarity)을 의미할 수 있다.
단계 S710에서, 디바이스(100)는 시각적 특징, 물리적 특징 또는 유용성 특징 중 적어도 하나에 기초하여, 복수의 오브젝트들에 포함된 제1 오브젝트와 다른 오브젝트들 간의 유사도를 결정할 수 있다.
이때, 제1 오브젝트는 복수의 오브젝트들에 포함된 임의의 오브젝트를 의미할 수 있다.
일 예로, 오브젝트들이 N개 인 경우, 각 오브젝트들의 페어(pair) 사이에 n * (n-1) / 2 개의 페어 시맨틱 유사성(pairwise semantic similarity)들이 존재할 수 있다. 오브젝트들 간의 시맨틱 유사성을 이용하기 위해서는, 오브젝트들의 특징들이 적절하게 인식되어야 한다. 이때, 일 예로 전술한 바와 같이 오브젝트의 유용성 특징이 인식될 수 있으며, 특히, 3D 오브젝트(가상 오브젝트)로 표현되는 오브젝트의 기능 등이 인식되어야 한다. 오브젝트의 기능에 따른 시맨틱 유사성이란, 일 예로, 마커와 펜은 마커와 손톱보다 유사한 것을 의미할 수 있다.
단계 S720에서, 디바이스(100)는 제1 오브젝트와 다른 오브젝트들과의 유사도에 기초하여, 제1 오브젝트의 위치를 결정할 수 있다.
본 개시의 일 실시예에 따라, 디바이스(100)는 상기 다른 오브젝트들과 유사도에 기초하여, 상기 제1 오브젝트의 위치를 결정하는 경우, 제1 오브젝트와 제2 오브젝트와의 유사도가 제1 오브젝트와 제3 오브젝트와의 유사도 보다 큰 경우, 제1 오브젝트가 제3 오브젝트 보다 제2 오브젝트와 가깝게 위치하도록 제1 오브젝트의 위치를 결정할 수 있다.
도 8은 본 개시의 일 실시예에 따라, 오브젝트들 간에 결정된 유사도를 도시한 도면이다.
본 개시의 일 실시예에 따라, 디바이스(100)는 결정된 특징에 기초하여, 복수의 오브젝트들 간의 유사도를 결정하는 경우, 오브젝트들의 명칭을 획득할 수 있다. 그리고, 디바이스(100)는 오브젝트들의 명칭에 기초하여, 오브젝트들간의 유사도를 결정할 수 있다.
즉, 일 예로, 오브젝트들 간의 유사도는 자연 언어 유사성(natural language similarity)에 의해 결정될 수 있다. 예를 들어, 자연 언어 유사성을 결정하기 위해 두 단어 사이의 코사인 유사성이 계산될 수 있으며, 한정되지 않은 일 실시예로, GloVe NLP가 사용되어 두 단어 사이의 코사인 유사성이 계산될 수 있다.
예를 들어, 도 8를 참고하면, "마커(marker)", "펜(pen)", "배터리(battery)"및 "충전기(charger)"라는 네 단어의 페어 거리(pairwise distance)가 도시되어 있다.
가상 공간에서 가상 오브젝트들 사이에서 작용하는 물리적 힘(예, 인력)은 시맨틱 유사성에 비례할 수 있다. 본 발명의 일 실시예에 따라, 오브젝트들 사이의 물리적 힘의 인력은 오브젝트들을 배치할 때, 오브젝트를 다른 오브젝트와 가깝게 또는 멀리 위치시키는 척도가 될 수 있다. 예로, 두 개의 오브젝트들 사이의 물리적 힘의 인력이 큰 경우, 인력이 큰 오브젝트들은 서로 가깝게 위치시킬 수 있다. 또한, 두 개의 오브젝트들 사이의 물리적 힘의 인력이 작은 경우, 인력이 작은 오브젝트들을 서로 멀리 위치시킬 수 있다.
즉, 가상 공간에서 제1 가상 오브젝트와 제2 가상 오브젝트 사이에서 작용하는 인력은 제1 가상 오브젝트와 제2 가상 오브젝트와의 유사도에 기초하여 결정될 수 있다. 보다 상세하게, 가상 공간에서 제1 가상 오브젝트와 제2 가상 오브젝트 사이에서 작용하는 인력은 제1 가상 오브젝트와 제2 가상 오브젝트와의 유사도에 비례하여 결정될 수 있다.
몇몇 예시적인 실시 예에서, 두 오브젝트들 사이의 물리적 힘은 하기의 수학식과 같이 결정될 수 있다.
[수학식 1]
F1(t)=a(t)d12 min(m1,m2)2/3
이때, a는 스케일링 계수를 의미할 수 있고, 한정되지 않은 실시예로, 시뮬레이션 시작 시에 a는 30으로 설정되고, 시뮬레이션 종료 시에는 a는 0으로 설정될 수 있다.
d12는 시맨틱 유사성 계수를 의미할 수 있다. 예를 들어, 시맨틱 유사성 계수는 선형성(linear) 또는 경험적 종류의 단조 증가 함수로서의 유사성(empiric kind of monotonic increasing function)을 사용하여 오브젝트들을 설명하는 단어들(words) 또는 문구들(phrases)간의 GloVe 유사성(GloVe similarity)을 의미할 수 있다. 한정되지 않은 실시예로, d12=GloVe(word1, word2)3 로 설정될 수 있다.
또한, m1은 제1 오브젝트의 질량을 의미할 수 있고, m2는 제2 오브젝트의 질량을 의미할 수 있다.
본 개시에서, a는 오브젝트가 함께 접착되는 접착 대상의 강도를 의미할 수 있다. 이 시뮬레이션 단계는, 점도 환경(viscosity environment)에서 수행될 수 있다. 이때, 마찰력은 동적 시뮬레이션 동안 속도에 비례할 수 있으며(불필요한 진동을 방지하기 위해), 오브젝트들을 표면에 묶는 무중력 상태에서 수행될 수 있다.
또한, 2/3의 거듭 제곱은 많은 오브젝트들이 존재할 때, 결정 요인이 압력이 될 수 있음을 의미할 수 있다. 즉, 평균 사이즈의 2차 거듭 제곱에 비례하는 것을 의미할 수 있다. 반면에, 질량은 평균 크기의 3제곱에 비례하는 것을 확인할 수 있다.
다른 실시 예에서, 오브젝트들 사이의 힘은 그들의 기하학적 크기에 의해 결정되지 않을 수 있다. 이 경우, 하기의 수학식에 따라 오브젝트들 간의 물리적 힘을 결정할 수 있다.
[수학식 2]
F2(t)=a(t)d12
이 경우, 시뮬레이션하는 동안 오브젝트가 다른 오브젝트들과 서로 접착되기 시작하여, 유사한 오브젝트들의 클러스터를 생성할 수 있다.
오브젝트들이 그들의 시맨틱 유사성에 비례하여 서로 끌리는 특성을 도출하는 수 많은 방법이 존재할 수 있으며, 상술한 두 예는 단지 예시적인 실시 예로서 개시될 수 있다.
하기의 도 10을 참고할 때, 제2 단계에서는 물체 간 힘보다 중력이 우선적으로 시작되고, 결국 물체는 물체 간 인력보다는 중력의 영향을 받는 것을 확인할 수 있다.
도 9는 본 개시의 일 실시예에 따른, 오브젝트들 간의 작용하는 물리적 힘을 도시한 도면이다.
도 9를 참고하면, 오브젝트들(910, 920, 930, 940) 간에 작용하는 물리적 힘이 도시된 것을 확인할 수 있다. 보다 상세하게, 도 8의 오브젝트들 간 작용하는 인력과 관계된 값(예, F2/a(t))의 값이 도시된 것을 확인할 수 있다.
먼저, 디바이스(100)는 특징에 기초하여 오브젝트들 간의 유사도를 결정할 수 있다. 이때, 오브젝트들 간의 유사도는 오브젝트들 사이에 작용하는 인력에 비례할 수 있다.
도 9를 참고하면, 배터리(920)와 충전기(910) 간의 작용하는 힘은 175이고, 펜(940)과 마커(930) 간의 작용하는 힘은 43.6임을 확인할 수 있다. 이 값들은 다른 오브젝트들 간에 작용한 힘 보다 큰 값이다. 예로, 마커(930)와 배터리(920) 간에 작용하는 힘은 0.12이고, 마커(930)와 충전기(910) 간에 작용하는 힘의 값은 3.3이다. 이를 통해서 디바이스(100)는 배터리와 충전기 간에 작용하는 유사도가 제일 크다는 것을 확인할 수 있다. 또한, 펜과 마커 사이에 작용하는 유사도가 그 다음으로 크다는 것을 확인할 수 있다.
이때, 유사도는 상대적인 값에 해당될 수 있다. 특히, 유사도는 하나의 오브젝트(예, 제1 오브젝트)를 기준으로 제1 오브젝트가 다른 오브젝트들과 어떻게 유사도를 가지고 있는지를 상대적으로 판단할 필요가 있다.
도 9를 기초로 설명하면, 즉, 배터리(920)를 기준으로 가장 큰 유사도를 가지고 있는 오브젝트는 충전기(910)다. 반면, 마커(930)를 기준으로 판단할 때, 마커는 175보다는 작은 값인 43.6을 펜(940)과의 인력으로 갖고 있으나, 마커를 기준으로 볼 때 펜과의 유사도가 가장 크다. 따라서, 마커와 가장 큰 유사도를 가진 객체는 펜으로 판단할 수 있다.
디바이스(100)는 도출된 값(유사도)에 기초하여, 가상 공간에서 복수의 오브젝트들이 정돈된 결과에 대한 데이터를 생성할 수 있다. 일 예로, 디바이스(100)는 유사도가 높은 오브젝트들을 가깝게 위치시킬 수 있다. 도 9를 참고할 때, 디바이스(100)는 마커와 펜이 가깝게 위치하도록 데이터를 생성하고, 충전기와 배터리가 가깝게 위치하도록 데이터를 생성할 수 있다. 또한, 디바이스(100)는 유사도 값이 낮은 오브젝트들을 멀리 위치하도록 복수의 오브젝트들을 정렬할 수 있다.
결과적으로, 도 9를 확인하면 유사성이 큰 오브젝트들끼리 서로 가까이에 배치하는 것이 사용자의 편리성을 증진시킬 수 있는 하나의 일 실시예가 될 수 있다.
도 10은 본 개시의 일 실시예에 따라, 오브젝트들의 위치를 모델링할 때 고려되는 물리적 힘들의 관계를 도시한 그래프이다.
도 10(a)를 참고할 때, 오브젝트(1010)에는 제1 힘(1020) 및 제2 힘(1030)이 작용할 수 있다. 본 개시의 일 실시예에 따라, 제1 힘(1020)은 오브젝트에 작용하는 중력일 수 있다. 또한, 제2 힘(1030)은 오브젝트가 다른 오브젝트 들과 작용하는 인력일 수 있다. 이때, 다른 오브젝트들과 작용하는 인력은 전술한 도 8 내지 도 9에 따른 힘일 수 있다.
도 10(b)는 도 10(a)에 도시된 제1 힘(1020) 및 제 2 힘(1030)이 시뮬레이션 수행 중에 변화하는 실시 예를 도시한 도면이다. 도 10(b)을 참고하면, 오브젝트들의 위치를 모델링하는 것은 두 단계가 있을 수 있다.
도 10(b)를 참고할 때, 제1 단계의 구간(1040)은 오브젝트 간 인력이 작용하는 단계(Inter-object attraction phase)일 수 있다. 제1 단계의 구간(1040)에서, 계수 a(t)는 0이 아니지만, 중력 가속도 g(t)는 거의 0에 가까운 것을 확인할 수 있다. 이 구간(1040)에서는 마찰력이 없으므로, 오브젝트들은 오브젝트들 간의 시맨틱 유사성에 따라 정렬된 오브젝트들에 대해 클러스터를 생성하면서 마찰 없이 서로 자유롭게 움직일 수 있다.
도 10(b)를 참고할 때, 제2 단계의 구간(1050)은 마무리 단계(Finalization phase)일 수 있다. 제2 단계의 구간(1050)에서, 중력(g(t))은 오브젝트들 간의 힘보다 우선적으로 작용될 수 있다. 따라서 오브젝트들은 오브젝트들 간의 인력보다는 중력의 영향을 받아 움직일 수 있다.
도 11은 본 개시의 일 실시예에 따라, 모델링의 시간 경과에 따른 오브젝트의 위치 변동을 도시한 도면이다.
도 11을 참고하면 모델링 시간이 경과할수록 서로 멀게 위치하였던 오브젝트들이 서로 가까워지도록 이동되는 것을 확인할 수 있다. 즉, 정리되지 않은 상태였던 오브젝트들이 모델링을 통해 서로 가깝게 위치하는 방식으로 배치된 것을 확인할 수 있다.
시뮬레이션을 통해 오브젝트들을 정렬하는 방법에는 다양한 방법이 존재할 수 있을 것이다. 한정되지 않은 일 예로, 오브젝트들의 가상의 힘 장(virtual force fields)(예, 가상의 불도저)를 사용하는 방법, 다양한 힘들을 조합하는 방법, 가상의 바람, 가상의 탄성력, 가상의 인력 지점, 진동 시뮬레이션 어닐링(vibrations simulated annealing), 수축하는 구(sphere) 내의 떨림 등을 사용하는 방법 및 물리적 모델링을 사용하지 않고 강제적으로 오브젝트들을 재배치하는 방법 등이 있을 수 있으며, 이에 한정되지 않는다.
다른 예시적인 실시 예는, 오브젝트들 간의 인력을 결정하고, 움직일 수 없는 물체를 결정하기 위한 다른 방법 및 수단을 포함할 수 있다.
전술한 예시적인 실시 예에서의 모든 오브젝트들은 유용성 특징을 갖지 않으며, 시뮬레이션을 위해 물리적 특징만 사용된 실시예 들이다. 이하의 실시 예는 객체의 유용성 특징을 사용하여 오브젝트들을 재배열하는 실시예를 설명한다.
도 12는 본 개시의 일 실시예에 따라, 오브젝트들의 유용성 특징을 이용하여 오브젝트를 배치하는 시뮬레이션 결과를 도시한 도면이다.
본 개시의 일 실시예에 따라 전술한 단계 S230에서, 디바이스(100)는 복수의 오브젝트들에 포함된 제1 오브젝트에 대한 유용성 특징에 기초하여, 제1 오브젝트가 배치되는 대상(예, 정돈 시 제거되어야 하는 대상, 쓰레기 등)인지 판단할 수 있다. 또한, 디바이스(100)는 제1 오브젝트가 배치되는 대상인지 여부에 기초하여, 제1 오브젝트의 위치를 결정할 수 있다.
도 12(a)는 정리되기 전의 오브젝트들을 도시한 도면일 수 있다. 즉, 도 12(a)는 S210 단계에서 디바이스(100)가 획득 또는 촬영한 이미지에 대응될 수 있다. 이때, 배치 대상이 아닌 오브젝트(1210)가 정돈해야 하는 오브젝트들에 포함되어 있는 경우, 디바이스(100)는 쓰레기(1210)를 제외하고 정리를 수행할 필요가 있다.
본 개시의 일 실시예에 따라, 디바이스(100)는 추출한 유용성 특징에 기초하여, 복수의 오브젝트들 각각이 제거되어야 하는 대상(1210)(예, 쓰레기)인지 판단할 수 있다. 즉, 일 실시 예에서, 오브젝트들의 추가적인 유용성 특징은 오브젝트가 쓰레기가 아닌지(non garbage) 또는 쓰레기(garbage)인지에 대한 분류를 포함할 수 있다.
전술한 단계 S250에서, 디바이스(100)는 제1 오브젝트가 배치되는 대상이 아닌 경우(즉, 제1 오브젝트가 쓰레기(1210)인 경우), 도 12(b)와 같이 배치되는 대상인 오브젝트들과 제1 오브젝트가 구별되는 가상 배치 이미지를 생성할 수 있다.
일 예로, 디바이스(100)는 배치 대상이 아닌 것으로 판단된 오브젝트를 분리하여 이미지를 생성할 수 있다. 보다 상세하게, 도 12(b)와 같이, 쓰레기(1210)로 분류된 오브젝트는 렌더링 과정 및 디스플레이 과정에서, 시각적으로 변경된 표현(예; 쓰레기는 마킹되어 있을 수 있음)으로 표시될 수 있다. 즉, 쓰레기(1210)는 다른 오브젝트들과 구별되도록 표시될 수 있다.
도 13은 본 개시의 일 실시예에 따라, 오브젝트의 사용 빈도수에 기초하여 오브젝트의 위치를 결정하는 방법에 대한 흐름도이다.
단계 S1310에서, 디바이스(100)는 유용성 특징에 기초하여, 복수의 오브젝트들에 포함된 제1 오브젝트에 대한 사용 빈도수를 획득할 수 있다.
본 개시에서, 유용성 특징은 복수의 오브젝트들 각각에 대한 사용 빈도수를 포함할 수 있다. 이때, 오브젝트들 각각에 대한 사용 빈도수는 상대적인 개념일 수 있다.
본 개시의 일 실시예에 따라, 디바이스(100)는 복수의 오브젝트들 각각에 대한 위치 이동량에 기초하여 복수의 오브젝트들 각각에 대한 사용 빈도수를 결정할 수 있다. 보다 자세한 내용은 도 14 내지 도 17에서 후술된다.
단계 S1320에서, 디바이스(100)는 사용 빈도수에 기초하여 상기 제1 오브젝트의 위치를 결정할 수 있다.
본 개시의 일 실시예에 따라, 디바이스(100)가 사용 빈도수에 기초하여 제1 오브젝트의 위치를 결정하는 경우, 제1 오브젝트에 대한 사용 빈도수가 제2 오브젝트에 대한 사용 빈도수보다 큰 경우, 제1 오브젝트가 제2 오브젝트 보다 사용자 선호 영역에 가깝도록 제1 오브젝트의 위치를 결정할 수 있다.
본 개시의 일 실시예에 따라, 사용자 선호 영역은 상기 복수의 오브젝트들이 배치되는 적어도 하나의 영역과 상기 디바이스(100)와의 거리에 기초하여 결정될 수 있다.
보다 자세한 설명은 하기의 도 18 내지 20에서 후술된다.
도 14는 본 개시의 일 실시예에 따라, 오브젝트의 사용 빈도수를 결정하는 방법에 대한 흐름도이다.
본 개시의 일 실시예에 따라, 오브젝트들의 사용 빈도를 기술하는 데이터(이하, 사용 빈도수)가 존재할 수 있다. 아이템들은 사용 빈도수에 따라 재배치될 수 있다. 이때, 사용 빈도를 사용하는 다양한 다른 메트릭(metrics)이 존재할 수 있다. 이때, 일 예로, 시뮬레이션을 하는 동안 사용 빈도수는 최전선으로 결정될 수 있다.
본 개시의 일 실시예에 따라, 디바이스(100)는 오브젝트들의 위치를 확인하고, 오브젝트들의 위치가 변경되는지 여부에 대해 추적할 수 있다.
도 14는 단계 S1310에서 유용성 특징에 기초하여, 복수의 오브젝트들에 포함된 제1 오브젝트에 대한 사용 빈도수를 획득하는 방법에 대한 흐름도일 수 있다.
단계 S1410에서, 디바이스(100)는 복수의 오브젝트들에 포함된 제1 오브젝트의 위치 변화를 적어도 하나의 이미지로부터 추적할 수 있다. 이때, 제1 오브젝트는 복수의 오브젝트들 중 하나의 오브젝트를 의미할 수 있다. 즉, 제1 오브젝트는 오브젝트의 위치 및 이동을 추적할 때 대상이 되는 오브젝트를 의미할 수 있다.
이때, 적어도 하나의 이미지는 오브젝트의 사용 빈도수를 결정하기 위하여, 오브젝트의 위치 변경을 추적할 수 있도록 촬영된 이미지를 의미할 수 있다. 본 개시의 일 실시예에 따라, 적어도 하나의 이미지는 특정 시간 간격을 두고 촬영된 이미지일 수 있다. 또한, 다른 일 실시예에 따라, 적어도 하나의 이미지는 오브젝트가 이동한 경우 촬영된 이미지일 수도 있다.
단계 S1420에서, 디바이스(100)는 제1 오브젝트의 위치 변화에 대한 정보에 기초하여, 제1 오브젝트의 위치 이동량을 결정할 수 있다.
단계 S1430에서, 디바이스(100)는 위치 이동량에 기초하여, 제1 오브젝트의 사용 빈도수를 결정할 수 있다.
이때, 디바이스(100)의 위치 변경을 추적하는 실시예들은 하기의 도 15 내지 도 17에서 보다 자세하게 후술된다.
도 15는 본 개시의 일 실시예에 따라, 오브젝트의 사용 빈도수를 결정하는 방법을 도시한 도면이다.
보다 상세하게, 도 15는 오브젝트들의 유용성 특징을 이용하여 오브젝트를 정리하는 시뮬레이션을 수행하기 위하여, 오브젝트의 사용 빈도수를 결정하는 방법을 도시하고 있다.
일 실시 예에서, 오브젝트의 사용 빈도를 결정하기 위해, 오브젝트의 모든 관찰은 하기의 수학식과 같은, RMS (root mean square) 값을 계산하도록 처리될 수 있다.
[수학식 3]
Figure pat00001
여기서,
Figure pat00002
,
Figure pat00003
Figure pat00004
는 관찰 동안 획득된 오브젝트에 대한 모든 좌표 값들의 평균값이다. 이 실시 예에서, RMS 값이 클수록, 아이템이 사용자에 의해 더 자주 사용되는 것을 의미할 수 있다.
도 15(a)를 참고하면, 펜(1510)의 위치를 지속적으로 추적하여, RMS 값을 획득하는 방법을 확인할 수 있다. 이때, 일 예시에 따라, 제1 이미지는 1일차 촬영된 이미지, 제2 이미지는 2일차 촬영된 이미지, 제3 이미지는 3일차 촬영된 이미지, 제4 이미지는 4일차 촬영된 이미지일 수 있다.
도 15(a)를 확인하면, 디바이스(100)는 제1 이미지에서 펜(1510)의 위치를 (2,3,7)로 획득한 것을 확인할 수 있다. 이때, 디바이스(100)는 오브젝트의 위치를 (x,y,z) 좌표로 획득할 수 있으며, 오브젝트의 x, y, z 좌표는 글로벌 좌표계(global coordinate system)에 바인딩 될 수 있다.
도 15(a)를 확인하면, 디바이스(100)는 제2 이미지에서 펜(1510)의 위치를 (3,6,7)로 획득한 것을 확인할 수 있다. 또한, 디바이스(100)는 제3 이미지에서 펜(1510)의 위치를 (2.5,6,7)로 획득하였고, 디바이스(100)는 제4 이미지에서 펜(1510)의 위치를 (4,7,7)로 획득한 것을 확인할 수 있다.
보다 상세하게, 펜(1510)의 위치에 대한
Figure pat00005
,
Figure pat00006
,
Figure pat00007
값은 각각
Figure pat00008
=(2+3+2.5+4)/4=2.875;
Figure pat00009
=(3+6+6+7)/4=5.5;
Figure pat00010
=7로 계산될 수 있다. 따라서 상기의 수학식 3에 따라 제1 이미지 내지 제 4 이미지에서 펜(1510)의 RMS 값을 계산하면, 펜(1510)의 RMS 값은 하기의 식과 같이 계산될 수 있다.
[수학식 4]
RMS=0.25*((2-2.875)2+(3-5.5)2+02+(2.875-3)2+(5.5-6)2+02+(2.875-4)2+(5.5-6)2+02+(2.875-4)2+(5.5-7)2+02)1/2=0.25*(11.1875)1/2=0.836
따라서, 펜(1510)의 RMS 값은 0.836 일 수 있다.
도 15(b)를 확인하면, 도 15(a)에 도시된 복수개의 오브젝트들 각각에 대한 RMS 값을 확인할 수 있다. 다른 오브젝트들의 값에 비해, 펜(1510)의 RMS 값이 큰 것을 확인할 수 있다. 이에 따라, 사용자가 펜(1510)의 위치를 가장 자주 변경하였고, 사용자가 펜(1510)을 다른 오브젝트들에 비해 자주 사용한다는 것을 알 수 있다.
도 16은 본 개시의 일 실시예에 따라, 오브젝트의 사용 빈도수를 결정하는 방법을 도시한 도면이다.
다른 실시 예에서, 각 오브젝트는 2 개의 앵커 포인트가 사용되어 인식될 수 있다. 도 16의 경우, 일 예에 따라, 펜(1600)의 팁(1620) 및 엔드(1610) 각각에 대한 위치가 판단되었다.
도 16을 참고할 때, 촬영된 제1 이미지에서 펜(1600)의 엔드(1610) 및 팁(1620)의 위치는 각각 (3.2, 4.5, 3.1) 과 (1.6, 7.3, 3.1)이다. 제2 이미지에서 펜(1600)의 엔드(1610) 및 팁(1620)의 위치는 각각 (7.2, 5.2, 3.1) 과 (4.5, 4.0, 3.1)이다. 제3 이미지에서 펜(1600)의 엔드(1610) 및 팁(1620)의 위치는 각각 (2.6, 2.5, 3.1) 과 (1.0, 3.8, 3.1)이다.
이와 같이, 디바이스(100)는 오브젝트에 대해 2개의 앵커 포인트를 사용하여 오브젝트의 위치를 추적할 수 있다. 또한, 디바이스(100)는 오브젝트에 대해 2개의 앵커 포인트를 사용하여 RMS 값을 획득할 수 있다.
RMS는 하기의 수학식을 이용하여, 도 15에서 설명한 바와 같이, 동일하게 계산될 수 있다.
[수학식 5]
Figure pat00011
마찬가지로, RMS 값이 다른 오브젝트들에 비해 큰 오브젝트에 대해 사용 빈도수가 큰 것으로 판단할 수 있다.
도 17은 본 개시의 일 실시예에 따라, 오브젝트의 사용 빈도수를 결정하는 방법을 도시한 도면이다.
도 17은 오브젝트들의 사용 빈도에 따라 오브젝트들의 위치가 변화하는 일 예에 대한 도면이다. 도 15 및 도 16에서 상술한 예시 외에도, 오브젝트들의 사용 빈도수를 결정하기 위한 다양한 방법이 존재할 수 있다.
예를 들어, 다른 실시 예에서, 6DoF 위치 변화를 추적하기 위해, 오브젝트 당 3 개의 앵커 포인트를 사용할 수 있다.
오브젝트가 카메라의 시야(Field-Of-View)에서 사라지거나 객체를 추적하기 위한 유사한 수단으로부터 추적되지 않는 경우, 좌표 RMS 값 또는 임의의 다른 사용 빈도 측정 메트릭은 다양한 규칙 또는 방법을 사용하여 계산 될 수 있다. 일 실시 예에서, 물체가 카메라의 FoV에서 사라지면, 일정한 양수(constant positive value)의 값이 휴리스틱하게(heuristically) RMS 값에 합산될 수 있다.
또 다른 실시 예에서 객체의 사용 빈도를 계산하기 위해 엔드 투 엔드 딥 학습(End-to-End deep learning) 방법이 적용될 수 있다. 오브젝트들의 위치들을 순차적으로 포함하는 CleVR 방법론에 기초하여 합성 된 데이터 세트 및 일련의 이미지가 제공되면 유용성 값 (RMS 값의 좌표 값에 기초 함)이 사용될 수 있다. 3D 컨볼루션 네트워크를 기반으로 하는 딥 뉴럴 네트워크는 엔드-투-엔드 방식(end-to-end manner)으로 오브젝트들의 유용성 값을 학습하는 데 사용될 수 있다.
전술한 방법에 한하지 않으며, 오브젝트들의 사용 빈도수는 다양한 방법으로 획득될 수 있다.
도 18은 본 개시의 일 실시예에 따라, 오브젝트의 특징을 고려하여 오브젝트들의 위치를 결정하는 방법을 도시한 도면이다.
먼저, 오브젝트들의 위치를 결정하기 위하여, 오브젝트들의 특징으로 전술한 사용 빈도수가 고려될 수 있다. 또한, 사용 빈도수에 비례하여 오브젝트들 간에 작용하는 인력도 고려될 수 있다. 또한, 도 18을 참고하면, 시뮬레이션 동안 오브젝트에 대해 추가적인 힘(1840)이 사용될 수 있다.
일 예로, 추가적인 힘(1840)이란 사용자 선호 영역을 통과하는 가상의 선에 대한 탄성력(spring force) 등을 포함할 수 있다. 이때, 선호 영역이란 사용자가 접근하기 선호하는 영역으로, 보다 상세하게는 사용자가 오브젝트를 선택하여 사용하거나 집을 수 있는 가장 편리한 영역을 의미할 수 있다.
도 18을 참고하면, 충전기(1810), 배터리(1812), 마커(1814) 및 펜(18165) 간에 작용하는 인력과 관련된 값이 도시되어 있다.
도 18을 참고할 때, 위치를 결정하려는 제1 오브젝트가 펜(1816)인 경우를 예를 들어 설명한다. 도 18의 사용자 선호 영역의 중심선(Line of center of preferred area)(1820)은 사용자 선호 영역 상에 위치한 가상의 선을 의미할 수 있다.
이때, 거리(1830)는 펜(1816)에서부터 사용자 선호 영역의 중심선(1820)까지의 거리를 의미할 수 있다.
이때, 펜(1816)에 대해 작용하는 힘(Force)(1840)은 k*거리(distance)(1830)으로 계산할 수 있다. 이때, k는 오브젝트가 선호 영역으로 가깝게 위치하도록 작용하는 계수를 의미할 수 있으며, 탄성 계수를 의미할 수 있다. 또한, 본 개시의 일 실시예에 따라, k는 오브젝트의 사용 빈도수에 비례하여 설정되는 값일 수 있다.
도 19는 본 개시의 일 실시예에 따라, 사용 빈도수를 고려하여 오브젝트를 배치하는 방법을 도시한 도면이다.
도 19(a)는 펜(1900)을 사용하지 않는 경우, 펜(1900)의 사용 빈도수를 고려하여 오브젝트를 배치한 가상 배치 이미지에 대응될 수 있다. 이때, k의 값은 0일 수 있다.
도 19(b)는 중간 사용 빈도수로 펜(1900)을 사용한 경우, 오브젝트를 배치한 가상 배치 이미지에 대응될 수 있다. 이때, k의 값은 5일 수 있다.
도 19(c)는 높은 사용 빈도수로 펜(1900)을 사용한 경우, 오브젝트를 배치한 가상 배치 이미지에 대응될 수 있다. 이때, k의 값은 20일 수 있다. 이때, 사용 빈도수는 오브젝트들 간의 상대적인 개념일 수 있다.
본 개시의 일 실시예에 따라, 시뮬레이션 동안 펜(1900)은 추가적인 힘에 따라 다르게 위치될 수 있다. 오브젝트가 사용자에 의해 더 자주 사용될 경우, 가장 접근하긴 쉬운 영역(사용자 선호 영역)의 중심 부분을 결정하는 가상의 선으로 오브젝트를 끌어당기는 탄성 계수(k)의 값이 커질 수 있다. 이 선에 오브젝트가 가까워 질수록 힘은 작아질 수 있다. 시뮬레이션이 수행되는 동안, 힘들의 균형은 시뮬레이션이 끝날 때 설정될 수 있다.
중력이 증가하고 탄성력이 감소하는 시뮬레이션의 제 2 단계(도 10 참고)에서 유용성에 영향을 주는 힘이 감소할 수 있다. 시뮬레이션이 종료되면, 오브젝트들은 사용자 선호 영역에 위치할 수 있다.
본 개시의 일 실시예에 따라, 사용 빈도수에 기초하여 사용자 선호 영역에 위치하는 오브젝트를 결정할 수 있다.
도 20은 본 개시의 일 실시예에 따라, 사용자 선호 영역을 결정하는 방법에 대한 도면이다.
용이하거나 접근하기 쉬운 영역(사용자 선호 영역)은 한정되지 않는 방법으로 결정될 수 있다.
본 개시의 일 실시예에 따라, 사용자 선호 영역은 일정 공간(예, 아파트)에서의 디바이스(100)의 모든 움직임 동안 디바이스(100)에 장착된 카메라까지의 최단 거리에 위치한 영역, 테이블, 선반 등에서 사용자와 가장 가까운 영역, 또는 사용자에 의해 명시 적으로 지정된 영역 등일 수 있다.
본 개시의 일 실시예에 따라, 사용자 선호 영역은 디바이스(100)의 위치와 제1 포인트(2050)와의 제1 거리 및 디바이스(100)의 위치와 제2 포인트(2040)와의 제2 거리를 비교하여 결정될 수 있다.
일 실시 예에서, 사용자가 정리 대상으로 지정한 영역은 복수의 포인트들로 커버될 수 있다. 한정되지 않은 일 예로, 사용자가 정리 대상으로 지정한 영역은 세 개의 포인트로 구분될 수 있다. 제1 포인트는 사용자가 선호하는 접근 영역(예, 사용자가 오브젝트를 쉽게 사용할 수 있는 영역), 제 2 포인트는 중간 난이도의 접근 영역, 그 외 영역은 사용자가 접근하기 어려운 영역(예, 멀리 떨어진 경우)로 지정할 수 있다. 다만 상술한 바와 같이 세 개의 포인트로 한정하는 것은 아니다.
도 20을 참고할 때, 제1 포인트(2050)와 제2 포인트(2040)가 사용자가 정리 대상으로 지정한 영역에 존재한다고 가정하고 설명한다. 제1 포인트(2050)는 테이블의 영역 중에서 사용자가 사용하기 가까운 공간(Closest area)이고, 제2 포인트(2040)는 테이블의 영역 중의 중간 영역(Middle area)을 의미할 수 있다.
이때, 디바이스(100)에는 카메라가 포함될 수 있다. 기하학적 규칙과 디바이스(100)(예, 로봇)의 제1 위치(2010), 제2 위치(2020) 및 제3 위치(2030)를 고려하여, 디바이스(100)의 위치와 제1 포인트(2050)와의 제1 거리 및 디바이스(100)의 위치와 제2 포인트(2040)와의 제2 거리를 결정할 수 있다.
이때, 디바이스(100)(2000)의 제1 위치(2010), 제2 위치(2020) 및 제3 위치(2030)에서 제2 포인트(2040)까지의 거리의 합은 디바이스(100)(2000)의 제1 위치(2010), 제2 위치(2020) 및 제3 위치(2030)에서 제1 포인트(2050)까지의 거리의 합보다 크다. 즉, d21 + d22 + d23> d11 + d12 + d13이 성립한다. 즉, 디바이스(100)의 위치들과 제2 포인트(5640)와의 거리의 합산인 d21 + d22 + d23가 디바이스(100)의 위치들과 제1 포인트(5650)와의 거리의 합산인 d11 + d12 + d13보다 크다. 따라서, 제2 포인트는 제1 포인트보다 먼 곳에 있는 것을 알 수 있다.
이때, d21은 제2 포인트(2040)와 제1 위치(2010), d22는 제2 포인트(2040)와 제2 위치(2020), d23은 제2 포인트(2040)와 제3 위치(2030)를 의미할 수 있다. 또한, d11은 제1 포인트(2050)와 제1 위치(2010), d12는 제1 포인트(2050)와 제2 위치(2020), d13은 제1 포인트(2050)와 제3 위치(2030)를 의미할 수 있다.
상술한 방법을 통해, 제1 포인트(2050)와 제1 포인트(2050)의 주변 환경은 사용자가 더 쉽게 접근할 수 있는 영역으로 확인할 수 있다. 이를 통해, 디바이스(100)(2000)는 제1 포인트(2050)의 영역을 사용자 선호 영역으로 결정할 수 있다.
도 21 및 도 22는 본 개시의 일 실시예에 따라, 디바이스(100)가 가상 배치 이미지를 디스플레이하는 UI를 도시한 도면이다.
도 21 및 도 22는 도 2에서 전술한 단계 S250에 대한 실시예를 설명한 도면이다. 본 개시의 일 실시예에 따라, 렌더링된 결과는 UI로 생성될 수 있다. 이때, 디바이스(100)는 사용자가 선택할 수 있는 수개의 옵션을 UI로 생성하여 디스플레이할 수 있다.
본 개시의 일 실시예에 따라, 옵션에는 디바이스(100)가 제안한 오브젝트들의 재배치에 동의하는지 여부에 대한 선택도 포함될 수 있다. 도 21을 참고하여 설명할 때, 디바이스(100)로부터 제시된 아이템들의 배열을 수락할 것인지를 선택할 수 있는 UI가 생성될 수 있다. 예로, 도 21과 같이 정리 전(현재)의 오브젝트들의 상태에 대한 이미지와 정리된 경우의 오브젝트들의 상태에 대한 이미지가 디스플레이 될 수 있다. 사용자에 의해 정리 동의(yes)가 선택된 경우, 디바이스(100)는 수신된 입력에 기초하여 선택된 이미지에 따라 복수의 오브젝트들을 배열할 수 있다. 또한, 다른 일 예로, 사용자에 의해 정리 거절(no)이 선택된 경우, 디바이스(100)는 수신된 입력에 기초하여 오브젝트들의 정리를 수행하지 않을 수 있다.
본 개시의 일 실시예에 따라, 수개의 선택들이 사용자에게 제시될 수 있다. 도 22를 참고할 때, 수개의 옵션들은 사용자가 선택할 수 있도록 디스플레이될 수 있다. 예로, 수개의 옵션들은 서로 다른 배치 알고리즘에 기초하여 생성된 가상 배치 이미지들에 대응될 수 있다. 도 22를 참고하면, 선택 A는 제1 배치 알고리즘에 기초하여 생성된 가상의 배치 이미지일 수 있고, 선택 B는 제2 배치 알고리즘에 기초하여 생성된 가상의 배치 이미지일 수 있다.
본 개시의 일 실시예에 따라, 사용자가 제시된 오브젝트들의 재배치 시뮬레이션을 거절한 경우, 오브젝트들에 대한 다른 재배치가 생성될 수 있다. 일 예로, 디바이스(100)가 도 21의 거절(No)에 대한 사용자 입력을 수신하는 경우, 디바이스(100)는 다른 배치 알고리즘에 기초하여 오브젝트들에 대해 가상의 배치 이미지를 생성할 수 있다.
도 23은 본 개시의 일 실시예에 따라, 디바이스가 가상 배치 이미지에 기초하여 복수의 오브젝트들을 배열하기 위한 제어 신호를 생성하는 방법에 대한 흐름도이다.
도 21 내지 도 22에서 전술한 바와 같이, 디바이스(100)는 가상의 배치 이미지를 디스플레이하는 경우, 적어도 하나의 가상의 배치 이미지를 선택하는 UI를 생성할 수 있다. 이때, 적어도 하나의 가상의 배치 이미지는 서로 다른 배치 알고리즘에 기초하여 가상으로 복수의 오브젝트들이 배치된 이미지일 수 있다.
S2310 단계에서, 디바이스(100)는 적어도 하나의 가상의 배치 이미지 중에서 하나의 가상의 배치 이미지를 선택하는 입력을 수신할 수 있다.
S2320 단계에서, 디바이스(100)는 선택된 가상의 배치 이미지에 따라 복수의 오브젝트들을 배치하기 위한 제어 신호를 생성할 수 있다.
본 개시의 일 실시예에 따라, 디바이스(100)는 수신된 입력에 기초하여 선택된 이미지에 따라 복수의 오브젝트들을 배열하기 위한 제어 신호를 생성할 수 있다. 이때, 디바이스(100)는 제어 신호에 기초하여 복수의 오브젝트들을 배열할 수 있다. 일 예로, 디바이스(100)가 제어 신호에 기초하여 오브젝트들을 정리할 수 있는 기능을 수행할 수 있는 로봇인 경우, 디바이스(100)는 생성된 제어 신호에 기초하여 복수의 오브젝트들을 배열할 수 있다.
다른 일 예로, 디바이스(100)는 제어 신호를 외부 디바이스로 전송할 수 있다. 일 예로, 외부 디바이스가 제어 신호에 기초하여 오브젝트들을 정리할 수 있는 기능을 수행할 수 있는 로봇인 경우, 디바이스(100)는 외부 디바이스로 제어 신호를 전송하고, 외부 디바이스(예, 로봇)는 수신된 제어 신호에 기초하여 복수의 오브젝트들을 배열할 수 있다.
도 24는 본 개시의 일 실시예에 따라, 가상 오브젝트를 생성하는 방법에 대한 흐름도이다.
단계 S2410에서, 디바이스(100)는 획득한 이미지에서 제1 오브젝트에 대해 분리(Segmentation)를 수행할 수 있다.
이때, 본 개시의 일 실시예에 따라, 오브젝트를 분리(Segmentation)하는 것은 시맨틱 분리(semantic segmentation)를 이용할 수 있다. 보다 상세하게, 디바이스(100)는 적어도 하나의 이미지에서 오브젝트들의 시맨틱 세그먼테이션(semantic segmentation)을 수행할 수 있다.
도 25를 참고하면, 시맨틱 세그먼테이션(semantic segmentation)란, 복수의 오브젝트들에 포함된 제1 오브젝트가 획득한 이미지에서 삭제 또는 분리되는 것을 의미할 수 있다. 보다 상세하게 설명하면, 도 25(a)와 같이, 초기 이미지(Initial image)가 획득될 수 있다. 그리고 도 25(b)와 같이, 초기 이미지에서 제1 오브젝트인 건전지(2520)에 대해 세그멘테이션(Segmentation)이 수행될 수 있다. 분리된 오브젝트(2520)는 저장될 수 있다. 도 25(c)와 같이, 세그멘트된 오브젝트(2530)는 이미지로부터 분리(cut)될 수 있다.
본 개시의 일 실시예에 따라, 디바이스(100)는 분할된 오브젝트들을 이미지로부터 하나씩 제거하고, 인페인팅(inpainting)으로 갭을 채울 수 있다. 즉, 이미지에 대해 인페인팅을 위한 마스크가 수행될 수 있다. 이때 본 개시에서 인페인팅(inpainting)이란, 이미지의 특정 영역을 마스킹하고 간격을 재구성하는 알고리즘을 의미할 수 있다.
도 26을 참고하면, 인페인팅이 수행되기 위하여 인페이팅 알고리즘에 초기 이미지(2610)와 마스크(2620)가 입력될 수 있다. 이와 같은 과정을 통해, 오브젝트가 사라진 이미지(2630)를 획득할 수 있다.
도 27를 참고하면, 상술한 단계들을 복수의 오브젝트들 각각에 대해 순차적으로 수행하는 것을 확인할 수 있다. 즉, 도 27(a)와 같은 초기 이미지에 포함된 복수의 오브젝트들 각각에 대해 세그멘테이션과 인페인팅을 순차적으로 수행할 수 있다. 디바이스(100)는, 남은 오브젝트들이 없을 때까지, 반복하여 세그멘테이션과 인페인팅을 수행할 수 있다.
단계 S2420에서, 디바이스(100)는 제1 오브젝트에 대해 제1 오브젝트에 대해 결정된 특징을 할당할 수 있다.
이때, 제1 오브젝트에 대해 결정된 특징은 전술한 바와 같은, 제1 오브젝트에 대한 시각적 특징, 물리적 특징 또는 유용성 특징 중 적어도 하나를 의미할 수 있다.
단계 S2430에서, 디바이스(100)는 제1 오브젝트를 3D로 형상화할 수 있다.
보다 상세하게, 디바이스(100)는 영역 상에 있는 오브젝트들 및 평면 등과 같은 움직일 수 없는 3D 물체의 3D 재구성을 수행할 수 있다.
도 28은 가상 오브젝트를 생성하는 방법을 도시한 도면이다. 상술한 바와 같이 초기 이미지(2810)에 대해 세그멘테이션 및 마스크를 수행할 수 있다. 그리고, 세그멘테이션이 적용된 오브젝트가 추후의 3D 형상화를 위하여 저장될 수 있다. 그리고, 저장된 오브젝트에 대해 3D 형상화를 수행하여 가상 오브젝트(2830)가 생성될 수 있다.
도 29는 본 개시의 일 실시예에 따라, 디바이스가 특정 영역에 위치한 오브젝트들의 재배열을 수행하는 방법을 도시한 도면이다.
도 29(a)를 참고하면, 먼저 디바이스(100)는 디바이스(100) 또는 외부 디바이스(100)(예, 로봇)가 특정 영역(배치해야 할 오브젝트들이 위치한 영역)에 위치한 오브젝트들의 재배열을 수행하도록, 사용자의 명령을 수신할 수 있다. 디바이스(100)는 특정 영역에 대해 적어도 하나의 이미지(2D 또는 RGBD)를 촬영할 수 있다. 도 1에서 전술한 바와 같이, 한정되지 않은 일 실시예에 따라 디바이스(100)는 로봇일 수 있으며, 또는 외부 디바이스(예, 로봇)과 통신할 수 있는 장치일 수 있다.
상술한 도 24 내지 27에 따라, 디바이스(100)는 적어도 하나의 이미지에서 오브젝트들의 시맨틱 세그먼테이션(semantic segmentation)을 수행할 수 있다. 디바이스(100)는 분할된 오브젝트들을 이미지로부터 하나씩 제거하고, 인페인팅(inpainting)으로 갭을 채울 수 있다. 디바이스(100)는 세그먼트로 남은 오브젝트들이 없을 때까지, 세그먼테이션과 인페인팅(inpainting)을 반복하여 수행할 수 있다.
디바이스(100)는 시뮬레이션을 수행하여, 디바이스(100)는 영역 상에 있는 오브젝트들 및 평면 등과 같은 움직일 수 없는 3D 물체의 3D 재구성을 수행할 수 있다. 도 29(b)와 같이 디바이스(100)는 3D로 재 구성된 영역에서 적어도 2개의 가능한 3D 오브젝트들의 재 배열들을 계산할 수 있다.
이때, 배치 알고리즘이 의미론적 유사성(Semantic similarity)에 따라 오브젝트들을 배치하는 방법인 경우의 실시예를 보다 자세히 설명한다.
먼저, 디바이스(100)는 오브젝트들을 인식할 수 있다. 이때, 텍스트 레이블(Textual labels)이 적용될 수 있다. 디바이스(100)는 오브젝트들의 페어 사이의 페어 의미 거리(Pairwise semantic distance)를 계산할 수 있다. 이 때, 일 예로 GloVe-300 embedding이 사용될 수 있다.
디바이스(100)는 오브젝트들의 종류를 기반으로 한 무게들에 대한 데이터 베이스에 기초하여 오브젝트들의 물리적 특징(예, 오브젝트들의 무게(Weight)를 추정할 수 있다. 대응되는 무게를 가진 (가상) 오브젝트들이 3D 물리적 시뮬레이터 내에 입력될 수 있다. 이때, 가상의 3D 오브젝트들은 3D 물리적 시뮬레이터 내에 오브젝트들의 물리적 특성들에 대한 데이터베이스와 함께(예, 오브젝트들의 무게, 마찰력) 등이 입력될 수 있다.
본 개시의 일 실시예에 따라, 3D 물리적 시뮬레이터 내에서 오브젝트들의 의미적 유사성(semantic similarity)에 비례하는 물리적 힘(예, 쌍으로 작용하는 힘(pairwise force), 인력)이 오브젝트들 간에 작용하도록, 시뮬레이션이 수행될 수 있다. 시뮬레이션이 수행되는 동안, 시간에 따라 감소하는 진동(vibration)이 감소하는 쌍으로 작용하는 힘(pairwise force)가 적용되는 표면에 적용될 수 있다.
상술한 방법으로, 시뮬레이션 된 어닐링에 따라, 오브젝트들은 의미적으로 그룹화되어 최적의 위치에 위치할 수 있다.
이에 따라 도 29(b)와 같이 적어도 하나의 배치 알고리즘에 따라 가상 공간에서 가상 오브젝트들을 가상으로 배치할 수 있다.
도 29(c)를 참고하면, 사용자에게 UI를 생성하여 디스플레이할 수 있다. 이때, 렌더링 된 뷰가 사용자에게 보여 지도록 저장될 수 있다. 이때, 디바이스(100)는 적어도 두 개의 가능한 재배열을 비디오 파일들의 비트맵 이미지들로 렌더링할 수 있다. 이때, 본 개시의 일 실시예에 따라, 적어도 2 개의 가능한 재배열이 사용자에게 제시될 수 있다.
본 개시의 일 실시예에 따라, 사용자에 의해 적어도 2 개의 가능한 재배열 중 하나를 선택 받을 수 있다. 또한, 일 예시에 따라, 디바이스(100)는 소지품의 선택된 재 배열을 수행하기 위해 로봇에 명령을 보낼 수 있다.
도 30은 본 개시의 일 실시예에 따른 디바이스(100)의 구성을 나타내는 블록도이다.
도 30에 도시되는 바와 같이, 본 개시의 디바이스(100)는 프로세서(3030), 통신부(3010), 메모리(3020), 디스플레이(3030), 촬영부(3050)를 포함할 수 있다. 다만 디바이스(100)의 구성 요소가 전술한 예에 한정되는 것은 아니다. 예를 들어, 디바이스(100)는 전술한 구성 요소보다 더 많은 구성 요소를 포함하거나 더 적은 구성 요소를 포함할 수 있다. 뿐만 아니라, 프로세서(3030), 통신부(3010) 및 메모리(3020)가 하나의 칩(Chip) 형태로 구현될 수도 있다.
디바이스(100)는 전술한 방법에 따라 복수의 오브젝트들이 재배치된 가상의 배치 이미지를 생성하는 방법을 수행할 수 있으며, 중복되는 동작은 설명을 생략한다. 일 실시예에 따르면, 프로세서(3030)는 상술한 본 개시의 실시 예에 따라 디바이스(100)가 동작할 수 있는 일련의 과정을 제어할 수 있다. 예를 들면, 본 개시의 실시 예에 따르는 복수의 오브젝트들이 재배치된 가상의 배치 이미지를 생성하는 서비스를 제공하는 방법을 수행하도록 디바이스(100)의 구성요소들을 제어할 수 있다. 프로세서(3030)는 복수 개일 수 있으며, 프로세서(3030)는 메모리(3020)에 저장된 프로그램을 실행함으로써 전술한 본 개시의 복수의 오브젝트들이 재배치된 가상의 배치 이미지를 생성하는 서비스를 제공하기 위한 동작을 수행할 수 있다.
통신부(3010)는 외부 디바이스(예를 들어, 이미지를 촬영하는 외부 디바이스, 사용자에 의해 선택된 이미지에 따라 오브젝트들을 이동시킬 수 있는 외부 디바이스 등)와 신호를 송수신할 수 있다. 외부 장치와 송수신하는 신호는 제어 정보와, 데이터를 포함할 수 있다. 통신부(3010)는 송신되는 신호의 주파수를 상승 변환 및 증폭하는 RF 송신기와, 수신되는 신호를 저 잡음 증폭하고 주파수를 하강 변환하는 RF 수신기 등으로 구성될 수 있다. 다만, 이는 통신부(3010)는 일 실시예일뿐이며, 통신부(3010)의 구성요소가 RF 송신기 및 RF 수신기에 한정되는 것은 아니다. 또한, 통신부(3010)는 무선 채널을 통해 신호를 수신하여 프로세서(3030)로 출력하고, 프로세서(3030)로부터 출력된 신호를 무선 채널을 통해 전송할 수 있다.
일 실시예에 따르면, 메모리(3020)는 디바이스(100)의 동작에 필요한 프로그램 및 데이터를 저장할 수 있다. 또한, 메모리(3020)는 디바이스(100)가 송수신하는 신호에 포함된 제어 정보 또는 데이터를 저장할 수 있다. 메모리(3020)는 롬(ROM), 램(RAM), 하드디스크, CD-ROM 및 DVD 등과 같은 저장 매체 또는 저장 매체들의 조합으로 구성될 수 있다. 또한, 메모리(3020)는 복수 개일 수 있다 일 실시예에 따르면, 메모리(3020)는 전술한 본 개시의 실시예들인 복수의 오브젝트들이 재배치된 가상의 배치 이미지를 생성하는 서비스를 제공하는 동작을 수행하기 위한 프로그램을 저장할 수 있다.
일 실시예에 따르면, 프로세서(3030)는 복수의 오브젝트들에 대한 이미지를 획득하고, 획득한 이미지에 기초하여 복수의 오브젝트들 각각에 대한 시각적 특징, 물리적 특징 또는 유용성 특징 중 적어도 하나를 결정하고, 시각적 특징, 물리적 특징 또는 유용성 특징 중 적어도 하나에 기초하여, 복수의 오브젝트들이 배치된 결과에 대한 데이터를 생성하고, 복수의 오브젝트들이 배치된 결과에 대한 데이터에 기초하여, 복수의 오브젝트들이 배치된 가상의 배치 이미지를 생성하고, 가상의 배치 이미지를 디스플레이할 수 있다.
본 개시의 일 실시예에 따라, 유용성 특징은 상기 복수의 오브젝트들 각각에 대한 사용 빈도수, 배치되는 대상인지 여부에 대한 정보, 사용 용도에 대한 정보 또는 안정성에 대한 정보 중 적어도 하나를 포함할 수 있다.
일 실시예에 따르면, 프로세서(3030)는 유용성 특징에 기초하여, 복수의 오브젝트들에 포함된 제1 오브젝트에 대한 사용 빈도수를 획득하고, 사용 빈도수에 기초하여 제1 오브젝트의 위치를 결정할 수 있다.
일 실시예에 따르면, 프로세서(3030)는 제1 오브젝트에 대한 사용 빈도수가 제2 오브젝트에 대한 사용 빈도수보다 큰 경우, 제1 오브젝트가 제2 오브젝트 보다 사용자 선호 영역에 가깝게 위치하도록 제1 오브젝트의 위치를 결정할 수 있다.
일 실시예에 따르면, 프로세서(3030)는 사용자 선호 영역을 상기 복수의 오브젝트들이 배치되는 적어도 하나의 영역과 상기 디바이스와의 거리에 기초하여 결정할 수 있다.
일 실시예에 따르면, 프로세서(3030)는 복수의 오브젝트들 각각에 대한 위치 이동량에 기초하여 복수의 오브젝트들 각각에 대한 사용 빈도수를 결정할 수 있다.
일 실시예에 따르면, 프로세서(3030)는 복수의 오브젝트들에 포함된 제1 오브젝트의 위치 변화를 적어도 하나의 이미지로부터 추적하고, 제1 오브젝트의 위치 변화에 대한 정보에 기초하여, 제1 오브젝트의 위치 이동량을 결정하며, 위치 이동량에 기초하여, 제1 오브젝트의 사용 빈도수를 결정할 수 있다.
일 실시예에 따르면, 프로세서(3030)는 시각적 특징, 물리적 특징 또는 유용성 특징 중 적어도 하나에 기초하여, 복수의 오브젝트들에 포함된 제1 오브젝트와 다른 오브젝트들 간의 유사도를 결정하고, 제1 오브젝트와 다른 오브젝트들 간의 유사도에 기초하여, 제1 오브젝트의 위치를 결정할 수 있다.
일 실시예에 따르면, 프로세서(3030)는 제1 오브젝트와 제2 오브젝트와의 유사도가 상기 제1 오브젝트와 제3 오브젝트와의 유사도 보다 큰 경우, 제1 오브젝트가 제3 오브젝트 보다 제2 오브젝트와 가깝게 위치하도록 제1 오브젝트의 위치를 결정할 수 있다.
일 실시예에 따르면, 프로세서(3030)는 복수의 오브젝트들에 포함된 제1 오브젝트에 대한 유용성 특징에 기초하여, 제1 오브젝트가 배치되는 대상인지 판단하고, 제1 오브젝트가 배치되는 대상인지 여부에 기초하여, 제1 오브젝트의 위치를 결정할 수 있다.
일 실시예에 따르면, 프로세서(3030)는 제1 오브젝트가 배치되는 대상이 아닌 경우, 배치되는 대상인 오브젝트들과 제1 오브젝트가 구별되는 가상 배치 이미지를 생성할 수 있다.
일 실시예에 따르면, 프로세서(3030)는 적어도 하나의 가상의 배치 이미지를 선택하는 UI를 생성할 수 있다. 이때, 적어도 하나의 가상의 배치 이미지는 서로 다른 배치 알고리즘에 기초하여 가상으로 복수의 오브젝트들이 배치된 이미지일 수 있다.
일 실시예에 따르면, 프로세서(3030)는 적어도 하나의 가상의 배치 이미지 중에서 하나의 가상의 배치 이미지를 선택하는 입력을 수신하고, 선택된 가상의 배치 이미지에 따라 복수의 오브젝트들을 배치하기 위한 제어 신호를 생성할 수 있다.
일 실시예에 따르면, 프로세서(3030)는 획득한 이미지에 기초하여 복수의 오브젝트들 각각을 식별하고, 식별된 오브젝트들 각각에 대응하는 상기 물리적 특징을 데이터 베이스로부터 획득할 수 있다.
일 실시예에 따르면, 프로세서(3030)는 배치 알고리즘에 기초하여 가상 공간에서 복수의 오브젝트들 각각에 대한 위치를 결정할 수 있다.
일 실시예에 따르면, 프로세서(3030)는 복수의 오브젝트들에 포함된 제1 오브젝트에 대응되는 시각적 특징, 물리적 특징 또는 유용성 특징을 제1 가상 오브젝트에 할당하고, 배치 알고리즘에 기초하여 가상 공간에서 제1 가상 오브젝트의 위치를 결정할 수 있다.
일 실시예에 따르면, 프로세서(3030)는 가상 공간에서 제1 가상 오브젝트에 대해 작용하는 힘을 판단하고, 제1 가상 오브젝트에 대해 작용하는 힘에 기초하여, 제1 가상 오브젝트의 위치를 결정할 수 있다.
일 실시예에 따르면, 프로세서(3030)는 가상 공간에서 제1 가상 오브젝트와 제2 가상 오브젝트 사이에서 작용하는 인력은 제1 가상 오브젝트와 상기 제2 가상 오브젝트와의 유사도에 기초하여 결정할 수 있다.
본 개시의 청구항 또는 명세서에 기재된 실시예들에 따른 방법들은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합의 형태로 구현될(implemented) 수 있다.
소프트웨어로 구현하는 경우, 하나 이상의 프로그램(소프트웨어 모듈)을 저장하는 컴퓨터 판독 가능 저장 매체 또는 컴퓨터 프로그램 제품이 제공될 수 있다. 컴퓨터 판독 가능 저장 매체 또는 컴퓨터 프로그램 제품에 저장되는 하나 이상의 프로그램은, 전자 장치(device) 내의 하나 이상의 프로세서에 의해 실행 가능하도록 구성된다(configured for execution). 하나 이상의 프로그램은, 전자 장치로 하여금 본 개시의 청구항 또는 명세서에 기재된 실시 예들에 따른 방법들을 실행하게 하는 명령어(instructions)를 포함한다.
이러한 프로그램(소프트웨어 모듈, 소프트웨어)은 랜덤 액세스 메모리 (random access memory), 플래시(flash) 메모리를 포함하는 불휘발성(non-volatile) 메모리, 롬(ROM: Read Only Memory), 전기적 삭제가능 프로그램가능 롬(EEPROM: Electrically Erasable Programmable Read Only Memory), 자기 디스크 저장 장치(magnetic disc storage device), 컴팩트 디스크 롬(CD-ROM: Compact Disc-ROM), 디지털 다목적 디스크(DVDs: Digital Versatile Discs) 또는 다른 형태의 광학 저장 장치, 마그네틱 카세트(magnetic cassette)에 저장될 수 있다. 또는, 이들의 일부 또는 전부의 조합으로 구성된 메모리에 저장될 수 있다. 또한, 각각의 구성 메모리는 다수 개 포함될 수도 있다.
또한, 프로그램은 인터넷(Internet), 인트라넷(Intranet), LAN(Local Area Network), WLAN(Wide LAN), 또는 SAN(Storage Area Network)과 같은 통신 네트워크, 또는 이들의 조합으로 구성된 통신 네트워크를 통하여 접근(access)할 수 있는 부착 가능한(attachable) 저장 장치(storage device)에 저장될 수 있다. 이러한 저장 장치는 외부 포트를 통하여 본 개시의 실시예를 수행하는 장치에 접속할 수 있다. 또한, 통신 네트워크 상의 별도의 저장 장치가 본 개시의 실시예를 수행하는 장치에 접속할 수도 있다.
본 개시에서, 용어 "컴퓨터 프로그램 제품(computer program product)" 또는 "컴퓨터로 읽을 수 있는 기록매체(computer readable medium)"는 메모리, 하드 디스크 드라이브에 설치된 하드 디스크, 및 신호 등의 매체를 전체적으로 지칭하기 위해 사용된다. 이들 "컴퓨터 프로그램 제품" 또는 "컴퓨터로 읽을 수 있는 기록매체"는 본 개시에 따른 복수의 오브젝트들에 대한 이미지를 획득하고, 획득한 이미지에 기초하여 복수의 오브젝트들 각각에 대한 시각적 특징, 물리적 특징 또는 유용성 특징 중 적어도 하나를 결정하고, 시각적 특징, 물리적 특징 또는 유용성 특징 중 적어도 하나에 기초하여, 복수의 오브젝트들이 배치된 결과에 대한 데이터를 생성하고, 복수의 오브젝트들이 배치된 결과에 대한 데이터에 기초하여, 복수의 오브젝트들이 배치된 가상의 배치 이미지를 생성하고, 가상의 배치 이미지를 디스플레이하기 위한 명령어로 구성된 소프트웨어 컴퓨터 시스템에 제공하는 수단이다.
상술한 본 개시의 구체적인 실시예들에서, 본 개시에 포함되는 구성 요소는 제시된 구체적인 실시예에 따라 단수 또는 복수로 표현되었다. 그러나, 단수 또는 복수의 표현은 설명의 편의를 위해 제시한 상황에 적합하게 선택된 것으로서, 본 개시가 단수 또는 복수의 구성 요소에 제한되는 것은 아니며, 복수로 표현된 구성 요소라 하더라도 단수로 구성되거나, 단수로 표현된 구성 요소라 하더라도 복수로 구성될 수 있다.
한편 본 개시의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 개시의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 개시의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (20)

  1. 디바이스가 복수의 오브젝트들이 재배치된 가상의 배치 이미지를 생성하는 방법에 있어서,
    상기 복수의 오브젝트들에 대한 이미지를 획득하는 단계;
    상기 획득한 이미지에 기초하여 상기 복수의 오브젝트들 각각에 대한 시각적 특징, 물리적 특징 또는 유용성 특징 중 적어도 하나를 결정하는 단계;
    상기 시각적 특징, 상기 물리적 특징 또는 상기 유용성 특징 중 적어도 하나에 기초하여, 상기 복수의 오브젝트들이 배치된 결과에 대한 데이터를 생성하는 단계;
    상기 복수의 오브젝트들이 배치된 결과에 대한 데이터에 기초하여, 상기 복수의 오브젝트들이 배치된 가상의 배치 이미지를 생성하는 단계; 및
    상기 가상의 배치 이미지를 디스플레이 하는 단계;를 포함하는, 방법.
  2. 제1 항에 있어서,
    상기 유용성 특징은 상기 복수의 오브젝트들 각각에 대한 사용 빈도수, 배치되는 대상인지 여부에 대한 정보, 사용 용도에 대한 정보 또는 안정성에 대한 정보 중 적어도 하나를 포함하는, 방법.
  3. 제1 항에 있어서,
    상기 시각적 특징, 상기 물리적 특징 또는 상기 유용성 특징 중 적어도 하나에 기초하여, 상기 복수의 오브젝트들이 배치된 결과에 대한 데이터를 생성하는 단계; 는,
    상기 유용성 특징에 기초하여, 상기 복수의 오브젝트들에 포함된 제1 오브젝트에 대한 사용 빈도수를 획득하는 단계; 및
    상기 사용 빈도수에 기초하여 상기 제1 오브젝트의 위치를 결정하는 단계;를 포함하는, 방법.
  4. 제3 항에 있어서,
    상기 사용 빈도수에 기초하여 상기 제1 오브젝트의 위치를 결정하는 단계;는
    상기 제1 오브젝트에 대한 사용 빈도수가 제2 오브젝트에 대한 사용 빈도수보다 큰 경우, 상기 제1 오브젝트가 상기 제2 오브젝트보다 사용자 선호 영역에 가깝게 위치하도록 상기 제1 오브젝트의 위치를 결정하는 단계;를 포함하는, 방법.
  5. 제4 항에 있어서,
    상기 사용자 선호 영역은 상기 복수의 오브젝트들이 배치되는 적어도 하나의 영역과 상기 디바이스와의 거리에 기초하여 결정되는, 방법.
  6. 제1 항에 있어서,
    상기 획득한 이미지에 기초하여 상기 복수의 오브젝트들 각각에 대한 상기 시각적 특징, 상기 물리적 특징 또는 상기 유용성 특징 중 적어도 하나를 결정하는 단계;는
    상기 복수의 오브젝트들 각각에 대한 위치 이동량에 기초하여 상기 복수의 오브젝트들 각각에 대한 사용 빈도수를 결정하는 단계;를 포함하는, 방법.
  7. 제6 항에 있어서,
    상기 복수의 오브젝트들 각각에 대한 사용 빈도수를 결정하는 단계;는
    상기 복수의 오브젝트들에 포함된 제1 오브젝트의 위치 변화를 적어도 하나의 이미지로부터 추적하는 단계;
    상기 제1 오브젝트의 위치 변화에 대한 정보에 기초하여, 상기 제1 오브젝트의 위치 이동량을 결정하는 단계; 및
    상기 위치 이동량에 기초하여, 상기 제1 오브젝트의 사용 빈도수를 결정하는 단계;를 포함하는, 방법.
  8. 제1 항에 있어서,
    상기 시각적 특징, 상기 물리적 특징 또는 상기 유용성 특징 중 적어도 하나에 기초하여, 상기 복수의 오브젝트들이 배치된 결과에 대한 데이터를 생성하는 단계; 는,
    상기 시각적 특징, 상기 물리적 특징 또는 상기 유용성 특징 중 적어도 하나에 기초하여, 상기 복수의 오브젝트들에 포함된 제1 오브젝트와 다른 오브젝트들 간의 유사도를 결정하는 단계; 및
    상기 제1 오브젝트와 다른 오브젝트들 간의 유사도에 기초하여, 상기 제1 오브젝트의 위치를 결정하는 단계;를 포함하는, 방법.
  9. 제8 항에 있어서,
    상기 다른 오브젝트들과 유사도에 기초하여, 상기 제1 오브젝트의 위치를 결정하는 단계;는,
    상기 제1 오브젝트와 제2 오브젝트와의 유사도가 상기 제1 오브젝트와 제3 오브젝트와의 유사도 보다 큰 경우,
    상기 제1 오브젝트가 상기 제3 오브젝트보다 상기 제2 오브젝트와 가깝게 위치하도록 상기 제1 오브젝트의 위치를 결정하는 단계를 포함하는, 방법.
  10. 제1 항에 있어서,
    상기 시각적 특징, 상기 물리적 특징 또는 상기 유용성 특징 중 적어도 하나에 기초하여, 상기 복수의 오브젝트들이 배치된 결과에 대한 데이터를 생성하는 단계; 는,
    상기 복수의 오브젝트들에 포함된 제1 오브젝트에 대한 유용성 특징에 기초하여, 상기 제1 오브젝트가 배치되는 대상인지 판단하는 단계; 및
    상기 제1 오브젝트가 배치되는 대상인지 여부에 기초하여, 상기 제1 오브젝트의 위치를 결정하는 단계;를 포함하는, 방법.
  11. 제10 항에 있어서,
    상기 복수의 오브젝트들이 배치된 결과에 대한 데이터에 기초하여, 상기 복수의 오브젝트들이 배치된 가상의 배치 이미지를 생성하는 단계;는,
    상기 제1 오브젝트가 배치되는 대상이 아닌 경우, 배치되는 대상인 오브젝트들과 상기 제1 오브젝트가 구별되는 가상 배치 이미지를 생성하는 단계;를 포함하는, 방법.
  12. 제1 항에 있어서,
    상기 가상의 배치 이미지를 디스플레이하는 단계;는
    적어도 하나의 가상의 배치 이미지를 선택하는 UI를 생성하는 단계;를 포함하고,
    상기 적어도 하나의 가상의 배치 이미지는 서로 다른 배치 알고리즘에 기초하여 가상으로 복수의 오브젝트들이 배치된 이미지인, 방법.
  13. 제12 항에 있어서,
    상기 가상의 배치 이미지를 디스플레이하는 단계;는
    상기 적어도 하나의 가상의 배치 이미지 중에서 하나의 가상의 배치 이미지를 선택하는 입력을 수신하는 단계; 및
    상기 선택된 가상의 배치 이미지에 따라 상기 복수의 오브젝트들을 배치하기 위한 제어 신호를 생성하는 단계;를 더 포함하는, 방법.
  14. 제1 항에 있어서,
    상기 획득한 이미지에 기초하여 상기 복수의 오브젝트들 각각에 대한 시각적 특징, 물리적 특징 또는 유용성 특징 중 적어도 하나를 결정하는 단계;는
    상기 획득한 이미지에 기초하여 상기 복수의 오브젝트들 각각을 식별하는 단계; 및
    상기 식별된 오브젝트들 각각에 대응하는 상기 물리적 특징을 데이터 베이스로부터 획득하는 단계;를 포함하는, 방법.
  15. 제1 항에 있어서,
    배치 알고리즘에 기초하여 가상 공간에서 상기 복수의 오브젝트들 각각에 대한 위치를 결정하는 단계; 를 더 포함하는, 방법.
  16. 제15 항에 있어서,
    상기 배치 알고리즘에 기초하여 상기 가상 공간에서 상기 복수의 오브젝트들 각각에 대한 위치를 결정하는 단계;는
    상기 복수의 오브젝트들에 포함된 제1 오브젝트에 대응되는 상기 시각적 특징, 상기 물리적 특징 또는 상기 유용성 특징을 제1 가상 오브젝트에 할당하는 단계; 및
    상기 배치 알고리즘에 기초하여 상기 가상 공간에서 상기 제1 가상 오브젝트의 위치를 결정하는 단계;를 포함하는, 방법.
  17. 제16 항에 있어서,
    상기 배치 알고리즘에 기초하여 상기 가상 공간에서 상기 제1 가상 오브젝트의 위치를 결정하는 단계;는,
    상기 가상 공간에서 상기 제1 가상 오브젝트에 대해 작용하는 힘을 판단하는 단계; 및
    상기 제1 가상 오브젝트에 대해 작용하는 힘에 기초하여, 상기 제1 가상 오브젝트의 위치를 결정하는 단계;를 포함하는, 방법.
  18. 제17 항에 있어서,
    상기 가상 공간에서 상기 제1 가상 오브젝트에 대해 작용하는 힘을 판단하는 단계;는,
    상기 가상 공간에서 상기 제1 가상 오브젝트와 제2 가상 오브젝트 사이에서 작용하는 인력은 상기 제1 가상 오브젝트와 상기 제2 가상 오브젝트 간의 유사도에 기초하여 결정하는, 방법.
  19. 복수의 오브젝트들이 재배치된 가상의 배치 이미지를 생성하는 디바이스에 있어서,
    적어도 하나 이상의 인스트럭션을 저장하는 메모리; 및
    상기 적어도 하나 이상의 인스트럭션을 실행함으로써 상기 디바이스를 제어하는 적어도 하나 이상의 프로세서를 포함하며,
    상기 적어도 하나 이상의 프로세서는,
    상기 복수의 오브젝트들에 대한 이미지를 획득하고,
    상기 획득한 이미지에 기초하여 상기 복수의 오브젝트들 각각에 대한 시각적 특징, 물리적 특징 또는 유용성 특징 중 적어도 하나를 결정하며,
    상기 시각적 특징, 상기 물리적 특징 또는 상기 유용성 특징 중 적어도 하나에 기초하여, 상기 복수의 오브젝트들이 배치된 결과에 대한 데이터를 생성하고,
    상기 복수의 오브젝트들이 배치된 결과에 대한 데이터에 기초하여, 상기 복수의 오브젝트들이 배치된 가상의 배치 이미지를 생성하며,
    상기 가상의 배치 이미지를 디스플레이하는, 디바이스.
  20. 제19 항에 있어서,
    상기 프로세서는, 상기 유용성 특징에 기초하여, 상기 복수의 오브젝트들에 포함된 제1 오브젝트에 대한 사용 빈도수를 획득하고, 상기 사용 빈도수에 기초하여 상기 제1 오브젝트의 위치를 결정하는, 디바이스.
KR1020200042960A 2020-04-08 2020-04-08 오브젝트들을 배치하는 이미지를 생성하는 방법 및 장치 KR20210125656A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200042960A KR20210125656A (ko) 2020-04-08 2020-04-08 오브젝트들을 배치하는 이미지를 생성하는 방법 및 장치
PCT/KR2021/004349 WO2021206447A1 (ko) 2020-04-08 2021-04-07 오브젝트들을 배치하는 이미지를 생성하는 방법 및 장치
US17/961,935 US20230037221A1 (en) 2020-04-08 2022-10-07 Method and device for generating image for arranging objects

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200042960A KR20210125656A (ko) 2020-04-08 2020-04-08 오브젝트들을 배치하는 이미지를 생성하는 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20210125656A true KR20210125656A (ko) 2021-10-19

Family

ID=78022647

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200042960A KR20210125656A (ko) 2020-04-08 2020-04-08 오브젝트들을 배치하는 이미지를 생성하는 방법 및 장치

Country Status (3)

Country Link
US (1) US20230037221A1 (ko)
KR (1) KR20210125656A (ko)
WO (1) WO2021206447A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230073754A (ko) 2021-11-19 2023-05-26 주식회사 에이직스 이미지 아틀라스 기법을 활용한 대용량 이미지 배치 렌더링 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11316858A (ja) * 1998-05-06 1999-11-16 Nippon Telegr & Teleph Corp <Ntt> 仮想物体の配置方法及びこの方法を記録した記録媒体
JP2004355578A (ja) * 2003-05-30 2004-12-16 Nippon Telegr & Teleph Corp <Ntt> 情報処理装置およびその3d出力方法
KR101612311B1 (ko) * 2009-10-09 2016-04-14 엘지전자 주식회사 이동 단말기 및 그 물품 배치 시뮬레이션 방법
US10108095B2 (en) * 2016-05-31 2018-10-23 Taiwan Semiconductor Manufacturing Co., Ltd. Automated mask storage and retrieval system
US10339497B2 (en) * 2016-07-21 2019-07-02 Ebay Inc. System and method for dynamic inventory management
IL292911B2 (en) * 2016-08-11 2023-11-01 Magic Leap Inc Automatic positioning of a virtual object in three-dimensional space
KR102434574B1 (ko) * 2017-08-14 2022-08-22 삼성전자주식회사 이미지에 포함된 특징 포인트의 시간 또는 공간의 움직임에 기초하여 이미지에 존재하는 피사체를 인식하는 장치 및 방법
WO2019142621A1 (ja) * 2018-01-18 2019-07-25 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230073754A (ko) 2021-11-19 2023-05-26 주식회사 에이직스 이미지 아틀라스 기법을 활용한 대용량 이미지 배치 렌더링 방법

Also Published As

Publication number Publication date
WO2021206447A1 (ko) 2021-10-14
US20230037221A1 (en) 2023-02-02

Similar Documents

Publication Publication Date Title
US10540054B2 (en) Navigation point selection for navigating through virtual environments
KR102222974B1 (ko) 홀로그램 스냅 그리드
US10909760B2 (en) Creating a topological map for localization in augmented or virtual reality systems
TWI533162B (zh) 用於擴充實境啓用裝置之使用者介面
US9286711B2 (en) Representing a location at a previous time period using an augmented reality display
CN114730546A (zh) 具有定位服务和基于位置的共享内容的交叉现实系统
CN105122304A (zh) 使用增强现实的对居住空间的实时设计
JP2023503257A (ja) パス可能世界のマッピングおよび位置特定
TW201303640A (zh) 用於頭戴式顯示器之全視野分類
US10970932B2 (en) Provision of virtual reality content
US10824247B1 (en) Head-coupled kinematic template matching for predicting 3D ray cursors
TW201737200A (zh) 具有動態及機率工作修整之幾何工作排程
US20220277166A1 (en) Methods and systems for rendering virtual objects in user-defined spatial boundary in extended reality environment
US20230037221A1 (en) Method and device for generating image for arranging objects
US11301050B2 (en) Method and device for presenting a synthesized reality user interface

Legal Events

Date Code Title Description
A201 Request for examination