KR102138412B1 - Method for managing 3d windows in augmented reality and virtual reality using projective geometry - Google Patents

Method for managing 3d windows in augmented reality and virtual reality using projective geometry Download PDF

Info

Publication number
KR102138412B1
KR102138412B1 KR1020170136760A KR20170136760A KR102138412B1 KR 102138412 B1 KR102138412 B1 KR 102138412B1 KR 1020170136760 A KR1020170136760 A KR 1020170136760A KR 20170136760 A KR20170136760 A KR 20170136760A KR 102138412 B1 KR102138412 B1 KR 102138412B1
Authority
KR
South Korea
Prior art keywords
user
window
virtual
virtual window
controller
Prior art date
Application number
KR1020170136760A
Other languages
Korean (ko)
Other versions
KR20190044389A (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 KR1020170136760A priority Critical patent/KR102138412B1/en
Publication of KR20190044389A publication Critical patent/KR20190044389A/en
Application granted granted Critical
Publication of KR102138412B1 publication Critical patent/KR102138412B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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; 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with three-dimensional environments, e.g. control of viewpoint to navigate in the environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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
    • G06F3/013Eye tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04812Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance interaction techniques based on cursor appearance or behaviour being affected by the presence of displayed objects, e.g. visual feedback during interaction with elements of a graphical user interface through change in cursor appearance, constraint movement or attraction/repulsion with respect to a displayed object
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 – G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/163Wearable computers, e.g. on a belt
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04806Zoom, i.e. interaction techniques or interactors for controlling the zooming operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/2016Rotation, translation, scaling

Abstract

영상 처리 방법 및 영상 처리 장치가 개시된다. 일 실시예에 따른 영상 처리 방법은 사용자의 손의 위치를 획득하는 단계와, 상기 손의 위치에 기초하여 가상 윈도우를 제어하는 단계를 포함한다.Disclosed is an image processing method and an image processing apparatus. The image processing method according to an embodiment includes obtaining a position of a user's hand and controlling a virtual window based on the position of the hand.

Description

증강현실 및 가상현실 내 투영기하를 사용한 3D 윈도우 관리 기법{METHOD FOR MANAGING 3D WINDOWS IN AUGMENTED REALITY AND VIRTUAL REALITY USING PROJECTIVE GEOMETRY}METHOD FOR MANAGING 3D WINDOWS IN AUGMENTED REALITY AND VIRTUAL REALITY USING PROJECTIVE GEOMETRY
아래 실시예들은 영상 처리 방법 및 영상 처리 장치에 관한 것이다. 예를 들어, 실시예들은 증강현실 및 가상현실 내 투영기하를 사용한 3D 윈도우 관리 기법을 통해 영상을 처리할 수 있다.The following embodiments relate to an image processing method and an image processing apparatus. For example, embodiments may process an image through a 3D window management technique using projection geometry in augmented reality and virtual reality.
우리는 웨어러블 장치가 인터넷과 로컬 노드들로부터 정보를 획득하는 미래를 상상한다. 예를 들어, 사용자는 스마트 안경을 눈에 착용하고, 사물 인터넷(internet of things(IoT))으로부터 정보를 상호적인 가상 요소(interactive virtual elements)로서 사용자 주변의 공간으로 가져오는 풍부한 컴퓨팅 미래를 상상할 수 있다.We imagine the future where wearable devices acquire information from the Internet and local nodes. For example, a user can imagine a rich computing future, wearing smart glasses on their eyes and bringing information from the Internet of Things (IoT) into the space around the user as interactive virtual elements. have.
여기서, 사용자는 자신의 현실에 얼마나 많은 가상 요소를 포함시킬 지를 자유롭게 선택할 수 있다. 예를 들어, 사용자는 증강 현실(augmented reality(AR))을 통해 주변 환경을 향상시키거나, 또는 가상 현실(virtual reality(VR))을 통해 주변 환경을 완전히 대체시킬 수 있다.Here, the user is free to choose how many virtual elements to include in his or her reality. For example, the user may enhance the surrounding environment through augmented reality (AR), or completely replace the surrounding environment through virtual reality (VR).
1980년대에 데스크톱 컴퓨터(desktop computer)가 등장했을 때, 또는 2000년대에 스마트 폰(smart phone)이 등장했을 때 등과 같이, 특정 컴퓨팅 폼 팩터(computing form factor)가 보편화될 때마다 이러한 컴퓨팅 폼 팩터를 용이하게 하는 유저 인터페이스(user interface(UI))가 개발되어 왔다.Whenever a particular computing form factor is popularized, such as when a desktop computer appeared in the 1980s or when a smart phone appeared in the 2000s, An easy user interface (UI) has been developed.
개발자가 새로운 유저 인터페이스(UI)를 디자인할 때, 개발자는 의도된 목적에 부합하게 적응적으로 작동하는 윈도우들, 아이콘들, 메뉴들, 및 포인터(WIMP)와 터치 사용자 인터페이스(TUI)와 같은 이전 패러다임으로부터 개념을 선택적으로 빌려 디자인할 수 있다. 이전 패러다임에 기초하여 유저 인터페이스(UI)를 디자인하는 것은 친숙하고 익숙한 유저 인터페이스(UI)를 구축하는데 도움이 될 수 있다.When a developer designs a new user interface (UI), the developer adapts to the intended purpose, such as windows, icons, menus, and pointers (WIMP) and touch user interface (TUI). The concept can be selectively borrowed from the paradigm and designed. Designing a user interface (UI) based on the previous paradigm can help build a familiar and familiar user interface (UI).
실시예들은 증강 현실(augmented reality(AR)) 또는 가상 현실(virtual reality(VR))에서 사용자의 의도에 적응적으로 작동하는 유저 인터페이스(user interface(UI))를 제공할 수 있다.Embodiments may provide a user interface (UI) that adaptively operates to a user's intention in augmented reality (AR) or virtual reality (VR).
또한, 실시예들은 사용자가 증강 현실(AR) 또는 가상 현실(VR)에서 사용자가 손쉽게 가상 윈도우를 제어하는 기술을 제공할 수 있다.In addition, embodiments may provide a technique for a user to easily control a virtual window in augmented reality (AR) or virtual reality (VR).
일 실시예에 3D 윈도우 관리 방법은 사용자의 손의 위치를 획득하는 단계와, 상기 손의 위치에 기초하여 가상 윈도우를 제어하는 단계를 포함한다.In one embodiment, a 3D window management method includes obtaining a position of a user's hand and controlling a virtual window based on the position of the hand.
상기 제어하는 단계는, 상기 손의 위치에 기초하여 상기 가상 윈도우를 선택, 이동, 크기 조정, 및 배치 중에서 적어도 하나를 수행하는 단계를 포함할 수 있다.The controlling step may include performing at least one of selecting, moving, resizing, and arranging the virtual window based on the position of the hand.
상기 손의 위치를 획득하는 단계는, 상기 사용자의 손가락 끝(fingertip)의 위치를 획득하는 단계를 포함할 수 있다.The step of acquiring the position of the hand may include acquiring the position of the fingertip of the user.
상기 손가락 끝의 위치를 획득하는 단계는, 상기 사용자의 엄지의 끝의 위치를 획득하는 단계와, 상기 사용자의 검지의 끝의 위치를 획득하는 단계를 포함할 수 있다.The step of acquiring the position of the fingertip may include acquiring the position of the tip of the user's thumb and acquiring the position of the tip of the index finger of the user.
상기 제어하는 단계는, 상기 엄지의 끝과 상기 검지의 끝 사이의 간격이 기준값(reference value) 이하인 경우, 커서(cursor)를 생성하는 단계와, 상기 커서에 기초하여 상기 가상 윈도우를 선택하는 단계를 포함할 수 있다.The controlling step may include generating a cursor if the distance between the tip of the thumb and the tip of the index finger is less than or equal to a reference value, and selecting the virtual window based on the cursor. It can contain.
상기 제어하는 단계는, 상기 간격이 상기 기준값을 초과하는 경우, 선택된 가상 윈도우를 선택 해제하여 상기 사용자가 지정하는 면에 겉보기 크기를 유지하면서 배치하는 단계를 더 포함할 수 있다.The controlling may further include, when the interval exceeds the reference value, deselecting the selected virtual window and arranging the selected virtual window while maintaining an apparent size on a surface designated by the user.
상기 커서를 생성하는 단계는, 상기 엄지의 끝과 상기 검지의 끝 사이의 간격을 지름(diameter)으로 하는 원형 커서를 생성하는 단계를 포함할 수 있다.The generating of the cursor may include generating a circular cursor having a diameter between a tip of the thumb and an end of the index finger.
상기 커서에 기초하여 상기 가상 윈도우를 선택하는 단계는, 상기 원형 커서와 중첩되는 상기 가상 윈도우를 활성화하는 단계를 포함할 수 있다.The step of selecting the virtual window based on the cursor may include activating the virtual window overlapping with the circular cursor.
상기 커서에 기초하여 상기 가상 윈도우를 선택하는 단계는, 상기 엄지의 끝과 상기 검지의 끝이 일치하는 경우, 활성화된 가상 윈도우를 겉보기 크기(apparent size)를 유지하면서 상기 손의 위치에 배치하는 단계를 더 포함할 수 있다.The step of selecting the virtual window based on the cursor may include arranging the activated virtual window at the position of the hand while maintaining an apparent size when the tip of the thumb and the end of the index finger coincide. It may further include.
상기 적어도 하나를 수행하는 단계는, 상기 사용자의 눈의 위치와 상기 손의 위치에 기초하여 상기 크기 조정을 수행하는 단계를 포함할 수 있다.The step of performing the at least one may include performing the resizing based on the position of the user's eye and the position of the hand.
상기 크기 조정을 수행하는 단계는, 상기 눈의 위치와 상기 손의 위치가 가까워질수록 상기 가상 윈도우를 확대하는 단계와, 상기 눈의 위치와 상기 손의 위치가 멀어질수록 상기 가상 윈도우를 축소하는 단계를 포함할 수 있다.The step of performing the resizing may include expanding the virtual window as the eye position and the hand position get closer, and shrinking the virtual window as the eye position and the hand position get farther away. It may include steps.
상기 크기 조정을 수행하는 단계는, 상기 가상 윈도우를 절대 크기(absolute size)를 유지하면서 확대 또는 축소하는 단계를 포함할 수 있다.The step of performing the resizing may include enlarging or reducing the virtual window while maintaining an absolute size.
일 실시예에 따른 3D 윈도우 관리 장치는, 사용자의 손의 위치를 획득하는 센서(sensor)와, 상기 가상 현실 또는 상기 증강 현실 상에서, 상기 손의 위치에 기초하여 가상 윈도우를 제어하는 컨트롤러(controller)와, 상기 컨트롤러의 제어에 응답하여, 상기 가상 현실 또는 상기 증강 현실을 구현하는 디스플레이(display)를 포함한다.The 3D window management apparatus according to an embodiment includes a sensor for acquiring a position of a user's hand and a controller for controlling a virtual window based on the position of the hand on the virtual reality or the augmented reality And a display implementing the virtual reality or the augmented reality in response to control of the controller.
상기 컨트롤러는, 상기 손의 위치에 기초하여 상기 가상 윈도우를 선택, 이동, 크기 조정, 및 배치 중에서 적어도 하나를 수행할 수 있다.The controller may perform at least one of selecting, moving, resizing, and arranging the virtual window based on the position of the hand.
상기 센서는, 상기 사용자의 손가락 끝(fingertip)의 위치를 획득할 수 있다.The sensor may acquire a position of a fingertip of the user.
상기 센서는, 상기 사용자의 엄지의 끝의 위치 및 검지의 끝의 위치를 획득할 수 있다.The sensor may acquire the position of the end of the thumb and the position of the index finger of the user.
상기 컨트롤러는, 상기 엄지의 끝과 상기 검지의 끝 사이의 간격이 기준값(reference value) 이하인 경우, 커서(cursor)를 생성하고, 상기 커서에 기초하여 상기 가상 윈도우를 선택할 수 있다.When the distance between the tip of the thumb and the tip of the index finger is equal to or less than a reference value, the controller may generate a cursor and select the virtual window based on the cursor.
상기 컨트롤러는, 상기 간격이 상기 기준값을 초과하는 경우, 선택된 가상 윈도우를 선택 해제하여 상기 사용자가 지정하는 면에 겉보기 크기를 유지하면서 배치할 수 있다.When the interval exceeds the reference value, the controller may deselect the selected virtual window and place it while maintaining the apparent size on the surface designated by the user.
상기 컨트롤러는, 상기 엄지의 끝과 상기 검지의 끝 사이의 간격을 지름(diameter)으로 하는 원형 커서를 생성할 수 있다.The controller may generate a circular cursor having a diameter between the tip of the thumb and the tip of the index finger.
상기 컨트롤러는, 상기 원형 커서와 중첩되는 상기 가상 윈도우를 활성화할 수 있다.The controller may activate the virtual window overlapping the circular cursor.
상기 컨트롤러는, 상기 엄지의 끝과 상기 검지의 끝이 일치하는 경우, 활성화된 가상 윈도우를 겉보기 크기(apparent size)를 유지하면서 상기 손의 위치에 배치할 수 있다.When the tip of the thumb and the tip of the index finger coincide, the controller may place the activated virtual window at the position of the hand while maintaining the apparent size.
상기 컨트롤러는, 상기 사용자의 눈의 위치와 상기 손의 위치에 기초하여 상기 크기 조정을 수행할 수 있다.The controller may perform the size adjustment based on the position of the user's eye and the position of the hand.
상기 컨트롤러는, 상기 눈의 위치와 상기 손의 위치가 가까워질수록 상기 가상 윈도우를 확대하고, 상기 눈의 위치와 상기 손의 위치가 멀어질수록 상기 가상 윈도우를 축소할 수 있다.The controller may enlarge the virtual window as the position of the eye and the hand are close, and shrink the virtual window as the position of the eye and the position of the hand are farther away.
상기 컨트롤러는, 상기 가상 윈도우를 절대 크기(absolute size)를 유지하면서 확대 또는 축소할 수 있다.The controller may enlarge or reduce the virtual window while maintaining an absolute size.
도 1은 일 실시예에 따른 영상 처리 장치의 개략적인 블록도를 나타낸다.
도 2a는 도 1에 도시된 영상 처리 장치의 동작을 설명하기 위한 도면의 일 예이다.
도 2b는 도 1에 도시된 영상 처리 장치의 동작을 설명하기 위한 도면의 다른 예이다.
도 3a는 도 1에 도시된 컨트롤러가 가상 윈도우를 선택하는 동작을 설명하기 위한 도면의 일 예이다.
도 3b는 도 1에 도시된 컨트롤러가 가상 윈도우를 선택하는 동작을 설명하기 위한 도면의 다른 예이다.
도 3c는 도 1에 도시된 컨트롤러가 가상 윈도우를 선택하는 동작을 설명하기 위한 도면의 다른 예이다.
도 4a는 도 3a 내지 도 3c에 대하여 사용자와 영상 처리 장치의 상호 작용을 설명하기 위한 도면의 일 예이다.
도 4b는 도 3a 내지 도 3c에 대하여 사용자와 영상 처리 장치의 상호 작용을 설명하기 위한 도면의 일 예이다.
도 5a는 도 1에 도시된 컨트롤러가 가상 윈도우를 크기 조정 및 위치하는 동작을 설명하기 위한 도면의 일 예이다.
도 5b는 도 1에 도시된 컨트롤러가 가상 윈도우를 크기 조정 및 위치하는 동작을 설명하기 위한 도면의 다른 예이다.
도 6은 도 1에 도시된 컨트롤러가 가상 윈도우를 배치하는 동작을 설명하기 위한 도면의 일 예이다.
도 7은 가상 윈도우의 줌 팩터를 설명하기 위한 도면의 일 예이다.
도 8은가상 윈도우의 줌 팩터를 설명하기 위한 도면의 다른 예이다.
도 9는 일 실시예에 따른 영상 처리 방법의 순서도를 나타낸다.
1 is a schematic block diagram of an image processing apparatus according to an embodiment.
FIG. 2A is an example of a diagram for describing an operation of the image processing apparatus illustrated in FIG. 1.
2B is another example of a diagram for describing an operation of the image processing apparatus illustrated in FIG. 1.
FIG. 3A is an example of a diagram for describing an operation in which the controller illustrated in FIG. 1 selects a virtual window.
FIG. 3B is another example of a diagram for describing an operation in which the controller illustrated in FIG. 1 selects a virtual window.
FIG. 3C is another example of a diagram for describing an operation in which the controller illustrated in FIG. 1 selects a virtual window.
4A is an example of a diagram for describing an interaction between a user and an image processing apparatus with respect to FIGS. 3A to 3C.
4B is an example of a diagram for describing an interaction between a user and an image processing apparatus with respect to FIGS. 3A to 3C.
FIG. 5A is an example of a diagram for describing an operation in which the controller illustrated in FIG. 1 resizes and positions a virtual window.
FIG. 5B is another example of a diagram for describing an operation in which the controller illustrated in FIG. 1 resizes and positions a virtual window.
FIG. 6 is an example of a diagram for describing an operation in which the controller illustrated in FIG. 1 arranges a virtual window.
7 is an example of a diagram for describing a zoom factor of a virtual window.
8 is another example of a diagram for describing a zoom factor of a virtual window.
9 is a flowchart of an image processing method according to an embodiment.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.Specific structural or functional descriptions of the embodiments according to the concept of the present invention disclosed in this specification are exemplified only for the purpose of explaining the embodiments according to the concept of the present invention, and the embodiments according to the concept of the present invention These can be implemented in various forms and are not limited to the embodiments described herein.
본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 변경, 균등물, 또는 대체물을 포함한다.Embodiments according to the concept of the present invention can be applied to various changes and can have various forms, so the embodiments will be illustrated in the drawings and described in detail herein. However, this is not intended to limit the embodiments according to the concept of the present invention to specific disclosure forms, and includes changes, equivalents, or substitutes included in the spirit and scope of the present invention.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.Terms such as first or second may be used to describe various components, but the components should not be limited by the terms. The above terms are only for the purpose of distinguishing one component from other components, for example, without departing from the scope of rights according to the concept of the present invention, the first component may be referred to as the second component, Similarly, the second component may also be referred to as the first component.
어떤 구성요소가 다른 구성요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 “직접 연결되어” 있다거나 “직접 접속되어” 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 “~사이에”와 “바로~사이에” 또는 “~에 직접 이웃하는” 등도 마찬가지로 해석되어야 한다.When an element is said to be "connected" or "connected" to another component, it is understood that other components may be directly connected to or connected to the other component, but other components may exist in the middle. It should be. On the other hand, when a component is said to be “directly connected” or “directly connected” to another component, it should be understood that no other component exists in the middle. Expressions describing the relationship between the components, for example, “between” and “immediately between” or “directly adjacent to” should also be interpreted.
본 명세서에서 사용한 용어는 단지 특정한 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, “포함하다” 또는 “가지다” 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is only used to describe specific embodiments and is not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this specification, the terms “include” or “have” are intended to designate the presence of a feature, number, step, action, component, part, or combination thereof as described, one or more other features or numbers, It should be understood that the presence or addition possibilities of steps, actions, components, parts or combinations thereof are not excluded in advance.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by a person skilled in the art to which the present invention pertains. Terms such as those defined in a commonly used dictionary should be interpreted as having meanings consistent with meanings in the context of related technologies, and should not be interpreted as ideal or excessively formal meanings unless explicitly defined herein. Does not.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, the scope of the patent application is not limited or limited by these embodiments. The same reference numerals in each drawing denote the same members.
도 1은 일 실시예에 따른 영상 처리 장치의 개략적인 블록도를 나타내고, 도 2a는 도 1에 도시된 영상 처리 장치의 동작을 설명하기 위한 도면의 일 예이고, 도 2b는 도 1에 도시된 영상 처리 장치의 동작을 설명하기 위한 도면의 다른 예이다.1 is a schematic block diagram of an image processing apparatus according to an embodiment, FIG. 2A is an example of a diagram for explaining an operation of the image processing apparatus illustrated in FIG. 1, and FIG. 2B is illustrated in FIG. 1 Another example of the drawing for explaining the operation of the image processing apparatus.
도 1 내지 도 2b를 참조하면, 영상 처리 장치(100)는 센서(110), 컨트롤러(120), 및 디스플레이(130)를 포함한다.1 to 2B, the image processing apparatus 100 includes a sensor 110, a controller 120, and a display 130.
영상 처리 장치(100)는 증강 현실(augmented reality(AR)) 또는 가상 현실(virtual reality(VR))을 구현할 수 있다. 즉, 사용자(50)는 영상 처리 장치(100)를 사용하여 증강 현실(AR) 또는 가상 현실(VR)을 경험(체험)할 수 있다.The image processing apparatus 100 may implement augmented reality (AR) or virtual reality (VR). That is, the user 50 may experience (experience) augmented reality (AR) or virtual reality (VR) using the image processing apparatus 100.
사용자(50)는 영상 처리 장치(100)를 사용하여 가상 윈도우(virtual window; 200, 210, 221, 222, 223, 224, 231, 232, 240, 250, 및 260)를 제어할 수 있다. 가상 윈도우(200, 210, 221, 222, 223, 224, 231, 232, 240, 250, 및 260)는 증강 현실(AR) 또는 가상 현실(VR)에서 가상으로 존재하는 윈도우(창)을 의미할 수 있다. 예를 들어, 가상 윈도우(200, 210, 221, 222, 223, 224, 231, 232, 240, 250, 및 260)는 원형이거나, 또는 폴리곤(삼각형, 사각형, 또는 오각형 등)으로 구현될 수 있다.The user 50 may control the virtual windows 200, 210, 221, 222, 223, 224, 231, 232, 240, 250, and 260 using the image processing apparatus 100. Virtual windows (200, 210, 221, 222, 223, 224, 231, 232, 240, 250, and 260) means a window (window) that exists virtually in augmented reality (AR) or virtual reality (VR) Can. For example, the virtual windows 200, 210, 221, 222, 223, 224, 231, 232, 240, 250, and 260 may be circular, or may be implemented as polygons (triangular, square, or pentagonal, etc.). .
사용자(50)는 가상 윈도우(200, 210, 221, 222, 223, 224, 231, 232, 240, 250, 및 260)를 사용하여 텍스트 문서, 사진, 또는 동영상 등을 시청할 수 있다. 또한, 사용자(50)는 가상 윈도우(200, 210, 221, 222, 223, 224, 231, 232, 240, 250, 및 260)를 사용하여 어플리케이션(application)을 실행할 수 있다. 사용자(50)는 어플리케이션을 사용하여 어플리케이션 고유의 기능을 실행할 수 있다. 예를 들어, 사용자(50)는 어플리케이션을 사용하여 날씨, 달력, 스케줄러(scheduler), 메시지(message), 메일(mail), 게임(game), 음악 감상 등의 기능을 실행할 수 있다.The user 50 can use a virtual window 200, 210, 221, 222, 223, 224, 231, 232, 240, 250, and 260 to view text documents, photos, or videos. Further, the user 50 may execute an application using the virtual windows 200, 210, 221, 222, 223, 224, 231, 232, 240, 250, and 260. The user 50 can use the application to execute application-specific functions. For example, the user 50 may use an application to execute functions such as weather, calendar, scheduler, message, mail, game, and music listening.
영상 처리 장치(100)는 휴대용 전자 장치로 구현될 수 있다. 예를 들어, 영상 처리 장치(100)는 스마트 디바이스(smart device)로 구현될 수 있다. 스마트 디바이스는 머리 착용 디스플레이(head mounted display(HMD)), 스마트 안경(smart glasses), 스마트 와치(smart watch watch), 및 스마트 밴드(smart band)를 포함할 수 있다. 즉, 영상 처리 장치(100)는 사용자가 착용할 수 있는 또는 착용하기에 적합한 웨어러블 장치(wearable device)일 수 있다.The image processing apparatus 100 may be implemented as a portable electronic device. For example, the image processing apparatus 100 may be implemented as a smart device. The smart device may include a head mounted display (HMD), smart glasses, a smart watch watch, and a smart band. That is, the image processing apparatus 100 may be a wearable device that is wearable or suitable for wear by a user.
센서(110)는 사용자(50)의 시선 벡터를 획득할 수 있다. 예를 들어, 센서(110)는 사용자(50)의 시선을 추적하고, 시선이 향하는 벡터에 기초하여 프러스텀(frustum)을 획득할 수 있다.The sensor 110 may obtain the gaze vector of the user 50. For example, the sensor 110 may track the gaze of the user 50 and obtain a frustum based on the vector to which the gaze is directed.
센서(110)는 사용자(50)의 손(60)의 위치를 획득할 수 있다. 예를 들어, 센서(110)는 손(60)의 손가락 끝(fingertip)의 위치를 획득할 수 있다.The sensor 110 may acquire the position of the hand 60 of the user 50. For example, the sensor 110 may acquire the position of the fingertip of the hand 60.
또한, 센서(110)는 사용자(50)의 눈(70)과 손(60) 사이의 거리를 획득할 수 있다.In addition, the sensor 110 may acquire a distance between the eye 70 and the hand 60 of the user 50.
센서(100)는 획득한 정보를 컨트롤러(120)로 전송할 수 있다. 예를 들어, 컨트롤러(120)는 센서(100)로부터 사용자(50)의 시선, 눈(70)과 손(60) 사이의 거리, 및 손(60)의 위치를 수신할 수 있다.The sensor 100 may transmit the acquired information to the controller 120. For example, the controller 120 may receive the gaze of the user 50, the distance between the eye 70 and the hand 60, and the position of the hand 60 from the sensor 100.
컨트롤러(120)는 센서(110)로부터 수신한 정보에 기초하여 가상 윈도우(200, 210, 221, 222, 223, 224, 231, 232, 240, 250, 및 260)를 제어할 수 있다. 즉, 컨트롤러(120)는 눈(70)과 손(60) 사이의 거리 및 손(60)의 위치 중에서 적어도 하나에 기초하여 가상 윈도우(200, 210, 221, 222, 223, 224, 231, 232, 240, 250, 및 260)를 활성화, 선택, 이동, 크기 조정, 및 배치 중에서 적어도 하나를 수행할 수 있다. 예를 들어, 컨트롤러(120)는 가상 윈도우(200, 210, 221, 222, 223, 224, 231, 232, 240, 250, 및 260)를 활성화시키고, 선택하고, 이동시키고 크기를 조정하여 배치할 수 있다. 이때, 활성화는 가상 윈도우(200, 210, 221, 222, 223, 224, 231, 232, 240, 250, 및 260)가 선택될 수 있음을 나타내는 상태일 수 있다.The controller 120 may control the virtual windows 200, 210, 221, 222, 223, 224, 231, 232, 240, 250, and 260 based on the information received from the sensor 110. That is, the controller 120 is based on at least one of the distance between the eye 70 and the hand 60 and the position of the hand 60, the virtual windows 200, 210, 221, 222, 223, 224, 231, 232 , 240, 250, and 260) can be activated, selected, moved, resized, and arranged. For example, the controller 120 activates, selects, moves and resizes the virtual windows 200, 210, 221, 222, 223, 224, 231, 232, 240, 250, and 260 to be placed. Can. At this time, the activation may be a state indicating that the virtual windows 200, 210, 221, 222, 223, 224, 231, 232, 240, 250, and 260 can be selected.
컨트롤러(120)는 사용자(50)의 프러스텀 내에서 위지윅(what you see is what you get(WYSIWYG)) 방식의 투영 기하를 사용하여 가상 윈도우(200, 210, 221, 222, 223, 224, 231, 232, 240, 250, 및 260)를 제어할 수 있다. 예를 들어, 컨트롤러(120)는 사용자(50)의 시선이 향하는 프러스텀 내의 가상 윈도우(200)를 제어할 수 있다.The controller 120 uses the projection geometry of what you see is what you get (WYSIWYG) within the frustum of the user 50 to virtual windows 200, 210, 221, 222, 223, 224, 231 , 232, 240, 250, and 260). For example, the controller 120 may control the virtual window 200 within the frustum toward which the user 50's gaze is directed.
도 2a를 참조하면, 사용자(50)는 선택하고자 하는 가상 윈도우(200)를 응시하여 프러스텀 내에 손(60)을 위치시킬 수 있다. 이에, 컨트롤러(120)는 가상 윈도우(200)를 활성화시킬 수 있다. 예를 들어, 컨트롤러(120)는 사용자(50)의 손(60)이 가상 윈도우(200) 위에 올라왔을 때, 즉, 사용자(50)의 손(60)과 가상 윈도우(200)가 중첩될 때, 가상 윈도우(200)를 활성화시킬 수 있다.Referring to FIG. 2A, the user 50 can position the hand 60 within the frustum by staring at the virtual window 200 to be selected. Accordingly, the controller 120 may activate the virtual window 200. For example, the controller 120 is when the hand 60 of the user 50 is placed on the virtual window 200, that is, when the hand 60 and the virtual window 200 of the user 50 overlap. , The virtual window 200 can be activated.
도 2b를 참조하면, 사용자(50)는 손(60)의 손가락 끝의 동작을 통해 활성화된 가상 윈도우(200)를 선택할 수 있다. 예를 들어, 사용자(50)는 엄지의 끝과 검지의 끝 사이의 간격을 기준값(reference value) 이하로 조절하여 활성화된 가상 윈도우(200)를 선택할 수 있다. 이에, 센서(110)는 사용자(50)의 손(60)의 위치를 컨트롤러(120)로 전송할 수 있다.Referring to FIG. 2B, the user 50 may select the activated virtual window 200 through the operation of the fingertip of the hand 60. For example, the user 50 may select the activated virtual window 200 by adjusting the distance between the tip of the thumb and the tip of the index finger to a reference value or less. Accordingly, the sensor 110 may transmit the position of the hand 60 of the user 50 to the controller 120.
컨트롤러(120)는 손(60)의 위치에 기초하여 가상 윈도우(200)를 선택할 수 있다. 컨트롤러(120)는 선택된 가상 윈도우(200)를 손(60)으로 소환시킬 수 있다. 즉, 컨트롤러(120)는 역투영 기하를 사용하여 가상 윈도우(200)를 사용자(50)의 손(60)으로 배치할 수 있다. 이때, 프러스텀 내에서 사용자(50)의 손(60)이 위치하는 면(plane)은 픽처 플레인(picture plane)을 의미할 수 있다. 즉, 컨트롤러(120)는 픽처 플레인으로 가상 윈도우(200)를 역투영할 수 있다. 이때, 컨트롤러(120)는 가상 윈도우(200)에 대하여 역투영 기하를 사용함으로써, 가상 윈도우(200)의 겉보기 크기(apparent size)를 일정하게 유지할 수 있다. 사용자(50)는 선택된 가상 윈도우(200)를 편리하게 이동하거나, 또는 크기를 조정하여 배치할 수 있다.The controller 120 may select the virtual window 200 based on the position of the hand 60. The controller 120 may summon the selected virtual window 200 with the hand 60. That is, the controller 120 may arrange the virtual window 200 to the hand 60 of the user 50 using the backprojection geometry. In this case, a plane in which the hand 60 of the user 50 is located in the frustum may mean a picture plane. That is, the controller 120 can project the virtual window 200 back into the picture plane. At this time, the controller 120 may maintain the apparent size of the virtual window 200 by using a backprojection geometry for the virtual window 200. The user 50 may conveniently move the selected virtual window 200 or adjust the size to be placed.
또한, 컨트롤러(120)는 선택된 가상 윈도우(200)를 선택 해제할 수 있다. 예를 들어, 사용자(50)의 엄지의 끝과 검지의 끝 사이의 간격이 기준값을 초과하는 경우 선택된 가상 윈도우(200)를 선택 해제할 수 있다. 이에, 선택 해제된 가상 윈도우(200)는 겉보기 크기를 유지하면서 상기 사용자가 지정하는 면 위치에 복귀할 수 있다.Also, the controller 120 may deselect the selected virtual window 200. For example, if the distance between the end of the thumb of the user 50 and the end of the index finger exceeds a reference value, the selected virtual window 200 may be deselected. Accordingly, the deselected virtual window 200 may return to the position of the surface designated by the user while maintaining the apparent size.
컨트롤러(120)는 사용자(50)의 입력에 응답하여, 가상 윈도우(200, 210, 221, 222, 223, 및 224)를 벽면에 수평으로 배치할 수 있다. 또한, 컨트롤러(120)는 사용자(50)의 입력에 응답하여, 가상 윈도우(231, 232, 240, 및 260)가 사용자(50)의 시선 벡터와 직교(orthogonal)하도록 배치할 수 있다. 컨트롤러(120)는 사용자(50)의 입력에 응답하여, 가상 윈도우(250)를 책상 면에 배치할 수 있다.The controller 120 may horizontally arrange the virtual windows 200, 210, 221, 222, 223, and 224 on the wall surface in response to an input from the user 50. In addition, the controller 120 may be arranged such that the virtual windows 231, 232, 240, and 260 are orthogonal to the gaze vector of the user 50 in response to an input from the user 50. The controller 120 may place the virtual window 250 on the desk surface in response to the input of the user 50.
컨트롤러(120)는 센서(110)로부터 수신한 눈(70)과 손(60) 사이의 거리에 기초하여 가상 윈도우(200, 210, 221, 222, 223, 224, 231, 232, 240, 250, 및 260)를 제어할 수 있다. 예를 들어, 컨트롤러(120)는 가상 윈도우(200, 210, 221, 222, 223, 224, 231, 232, 240, 250, 및 260)를 선택하고, 크기를 조정(확대 또는 축소)하여 배치할 수 있다.The controller 120 is based on the distance between the eye 70 and the hand 60 received from the sensor 110, the virtual windows 200, 210, 221, 222, 223, 224, 231, 232, 240, 250, And 260). For example, the controller 120 selects a virtual window (200, 210, 221, 222, 223, 224, 231, 232, 240, 250, and 260), and adjusts the size (enlarge or reduce) to place Can.
컨트롤러(120)가 가상 윈도우(200, 210, 221, 222, 223, 224, 231, 232, 240, 250, 및 260)를 확대 또는 축소하는 경우, 가상 윈도우(200, 210, 221, 222, 223, 224, 231, 232, 240, 250, 및 260)의 절대 크기(absolute size)가 일정하게 유지될 수 있다. 즉, 컨트롤러(120)는 가상 윈도우(200, 210, 221, 222, 223, 224, 231, 232, 240, 250, 및 260)의 절대 크기를 일정하게 유지하고, 겉보기 크기를 변화시켜 확대 또는 축소 동작을 수행할 수 있다.When the controller 120 enlarges or reduces the virtual windows 200, 210, 221, 222, 223, 224, 231, 232, 240, 250, and 260, the virtual windows 200, 210, 221, 222, 223 , 224, 231, 232, 240, 250, and 260), the absolute sizes may be kept constant. That is, the controller 120 keeps the absolute sizes of the virtual windows 200, 210, 221, 222, 223, 224, 231, 232, 240, 250, and 260 constant, and enlarges or reduces them by changing the apparent size. You can perform the operation.
디스플레이(130)는 컨트롤러(120)의 제어에 응답하여 가상 현실(VR) 또는 증강 현실(AR)을 구현할 수 있다. 즉, 디스플레이(130)는 사용자(50)가 가상 현실(VR) 또는 증강 현실(AR)에서 손쉽게 가상 윈도우(200, 210, 221, 222, 223, 224, 231, 232, 240, 250, 및 260)를 제어하는 환경을 제공할 수 있다.The display 130 may implement virtual reality (VR) or augmented reality (AR) in response to control of the controller 120. That is, the display 130 allows the user 50 to easily view the virtual windows 200, 210, 221, 222, 223, 224, 231, 232, 240, 250, and 260 in virtual reality (VR) or augmented reality (AR). ).
도 3a는 도 1에 도시된 컨트롤러가 가상 윈도우를 선택하는 동작을 설명하기 위한 도면의 일 예이고, 도 3b는 도 1에 도시된 컨트롤러가 가상 윈도우를 선택하는 동작을 설명하기 위한 도면의 다른 예이고, 도 3c는 도 1에 도시된 컨트롤러가 가상 윈도우를 선택하는 동작을 설명하기 위한 도면의 다른 예이고, 도 4a는 도 3a 내지 도 3c에 대하여 사용자와 영상 처리 장치의 상호 작용을 설명하기 위한 도면의 일 예이고, 도 4b는 도 3a 내지 도 3c에 대하여 사용자와 영상 처리 장치의 상호 작용을 설명하기 위한 도면의 일 예이다.3A is an example of a diagram for explaining an operation in which the controller illustrated in FIG. 1 selects a virtual window, and FIG. 3B is another example of a diagram for explaining an operation in which the controller illustrated in FIG. 1 selects a virtual window 3C is another example of a diagram for explaining an operation in which the controller shown in FIG. 1 selects a virtual window, and FIG. 4A is a diagram for explaining an interaction between a user and an image processing device with respect to FIGS. 3A to 3C It is an example of the drawing, and FIG. 4B is an example of the drawing for explaining the interaction between the user and the image processing apparatus with respect to FIGS. 3A to 3C.
도 3a 내지 도 4b를 참조하면, 사용자(50)는 가상 윈도우(310 및 320)가 존재하는 프러스텀에 손(60)을 위치시킬 수 있다. 사용자(50)는 엄지(61) 및 검지(62)의 위치를 조절하여 가상 현실(VR) 또는 증강 현실(AR) 상에서 커서(cursor)를 생성하고, 가상 윈도우(310 및 320)를 활성화하고, 선택할 수 있다.3A to 4B, the user 50 may place the hand 60 on the frustum where the virtual windows 310 and 320 are present. The user 50 adjusts the positions of the thumb 61 and the index finger 62 to create a cursor on a virtual reality (VR) or augmented reality (AR), activates the virtual windows 310 and 320, You can choose.
예를 들어, 센서(110)는 사용자(50)의 엄지(61)의 끝의 위치와 검지(62)의 끝의 위치를 획득하여 컨트롤러(120)로 전송할 수 있다.For example, the sensor 110 may acquire the position of the end of the thumb 61 of the user 50 and the position of the end of the index finger 62 and transmit it to the controller 120.
컨트롤러(120)는 엄지(61)의 끝의 위치와 검지(62)의 끝의 위치에 기초하여 커서를 생성할 수 있다. 예를 들어, 컨트롤러(120)는 엄지(61)의 끝과 검지(62)의 끝 사이의 간격이 기준값 이하인 경우, 커서를 생성할 수 있다.The controller 120 may generate a cursor based on the position of the end of the thumb 61 and the position of the end of the index finger 62. For example, the controller 120 may generate a cursor when the distance between the end of the thumb 61 and the end of the index finger 62 is equal to or less than a reference value.
컨트롤러(120)가 생성한 커서는 원형 모양일 수 있다. 예를 들어, 컨트롤러(120)는 엄지(61)의 끝과 검지(62)의 끝 사이의 간격을 커서의 지름(diameter)으로 설정할 수 있다.The cursor generated by the controller 120 may have a circular shape. For example, the controller 120 may set the distance between the end of the thumb 61 and the end of the index finger 62 as the diameter of the cursor.
컨트롤러(120)는 커서에 기초하여 가상 윈도우(310 및 320)를 활성화하고, 선택할 수 있다. 예를 들어, 컨트롤러(120)는 커서와 중첩되는 가상 윈도우(310 및 320)를 활성화할 수 있다. 컨트롤러(120)는 활성화된 가상 윈도우(310 및 320)에 대하여 선택, 이동, 크기 조정, 및 배치 중에서 적어도 하나를 수행할 수 있다.The controller 120 may activate and select the virtual windows 310 and 320 based on the cursor. For example, the controller 120 may activate the virtual windows 310 and 320 overlapping the cursor. The controller 120 may perform at least one of selection, movement, scaling, and arrangement of the activated virtual windows 310 and 320.
도 3a를 참조하면, 사용자(50)는 엄지(61)의 끝과 검지(62)의 끝 사이의 간격(r1)을 크게 할 수 있다. 이에, 컨트롤러(120)는 지름이 r1인 커서를 생성하고, 지름이 r1인 커서와 중첩되는 두 개의 가상 윈도우(310 및 320)를 활성화할 수 있다.Referring to FIG. 3A, the user 50 may increase the distance r 1 between the end of the thumb 61 and the end of the index finger 62. Thus, the controller 120 has a diameter r 1 can generate a cursor, and the diameter r 1 of the activation of two virtual windows 310 and 320 is large and overlapping.
도 3b를 참조하면, 사용자(50)는 엄지(61)의 끝과 검지(62)의 끝 사이의 간격(r2)을 작게 할 수 있다. 이에, 컨트롤러(120)는 지름이 r2인 커서를 생성하고, 지름이 r2인 커서와 중첩되는 한 개의 가상 윈도우(320)를 활성화할 수 있다.Referring to FIG. 3B, the user 50 may reduce the distance r 2 between the end of the thumb 61 and the end of the index finger 62. Thus, the controller 120 has a diameter able to generate r 2 of the cursor and activate a virtual window 320, which overlaps the diameter r 2 of the cursor.
도 3c를 참조하면, 사용자(50)는 엄지(61)의 끝과 검지(62)의 끝을 일치시킬 수 있다. 이에, 컨트롤러(120)는 활성화된 가상 윈도우(320)를 선택할 수 있다. 즉, 컨트롤러(120)는 손(60)의 위치에 해당하는 픽처 플레인에 가상 윈도우(320)를 역투영할 수 있다. 이때, 가상 윈도우(320)는 겉보기 크기를 유지하면서 픽쳐 플레인에 역투영될 수 있다. 컨트롤러(120)는 선택된 가상 윈도우(320)를 이동시킬 수 있다.Referring to FIG. 3C, the user 50 may match the end of the thumb 61 and the end of the index finger 62. Accordingly, the controller 120 may select the activated virtual window 320. That is, the controller 120 may back-project the virtual window 320 on the picture plane corresponding to the position of the hand 60. At this time, the virtual window 320 may be projected back onto the picture plane while maintaining the apparent size. The controller 120 may move the selected virtual window 320.
사용자(50)와 영상 처리 장치(100)가 서로 상호 작용하여 가상 현실(VR) 또는 증강 현실(AR) 상에서 가상 윈도우(310 및 320)를 활성화하여 선택하는 구성은 도 4a 및 도 4b를 참조하여 설명한다.The configuration in which the user 50 and the image processing apparatus 100 interact with each other to activate and select the virtual windows 310 and 320 on the virtual reality (VR) or the augmented reality (AR) is referred to with reference to FIGS. 4A and 4B. Explain.
도 4a를 참조하면, 사용자(50)는 엄지(61)의 끝과 검지(62)의 끝을 좁힐 수 있다. 컨트롤러(120)는 사용자(50)의 손(60)의 위치에 기초하여 커서를 생성할 수 있다. 컨트롤러(120)는 커서와 중첩하는 가상 윈도우(400)를 활성화할 수 있다.Referring to FIG. 4A, the user 50 can narrow the end of the thumb 61 and the end of the index finger 62. The controller 120 may generate a cursor based on the position of the hand 60 of the user 50. The controller 120 may activate the virtual window 400 overlapping the cursor.
도 4b를 참조하면, 사용자(50)는 엄지(61)의 끝과 검지(62)의 끝을 일치시킬 수 있다. 이에, 컨트롤러(120)는 가상 윈도우(400)를 선택할 수 있다. 즉, 컨트롤러(120)는 사용자(50)의 손(60)에 해당하는 픽처 플레인으로 가상 윈도우(400)를 역투영할 수 있다. 이때, 가상 윈도우(400)의 겉보기 크기는 동일할 수 있다. 컨트롤러(120)는 사용자(50)의 입력에 응답하여 가상 윈도우(400)를 이동할 수 있다.Referring to FIG. 4B, the user 50 may match the tip of the thumb 61 and the tip of the index finger 62. Accordingly, the controller 120 may select the virtual window 400. That is, the controller 120 may project the virtual window 400 back into the picture plane corresponding to the hand 60 of the user 50. At this time, the apparent size of the virtual window 400 may be the same. The controller 120 may move the virtual window 400 in response to an input from the user 50.
도 5a는 도 1에 도시된 컨트롤러가 가상 윈도우를 크기 조정하는 동작을 설명하기 위한 도면의 일 예이고, 도 5b는 도 1에 도시된 컨트롤러가 가상 윈도우를 크기 조정하는 동작을 설명하기 위한 도면의 다른 예이고, 도 6은 도 1에 도시된 컨트롤러가 가상 윈도우를 배치하는 동작을 설명하기 위한 도면의 일 예이다.FIG. 5A is an example of a diagram for explaining an operation in which the controller shown in FIG. 1 resizes a virtual window, and FIG. 5B is a view for explaining an operation in which the controller shown in FIG. 1 resizes a virtual window Another example, FIG. 6 is an example of a diagram for describing an operation in which the controller illustrated in FIG. 1 arranges a virtual window.
도 5a 내지 도 6을 참조하면, 컨트롤러(120)는 사용자(50)의 눈(70)의 위치와 손(60)의 위치에 기초하여 가상 윈도우(511, 511, 520, 521, 530, 531, 540, 541, 600, 및 601)를 활성화하고, 선택하여 크기 조정을 수행할 수 있다.5A to 6, the controller 120 is based on the position of the eye 70 and the hand 60 of the user 50, the virtual windows 511, 511, 520, 521, 530, 531, 540, 541, 600, and 601) may be activated and selected to perform resizing.
도 5a를 참조하면, 사용자(50)의 입력에 응답하여 컨트롤러(120)가 가상 윈도우(511)를 확대하여 배치하는 동작을 나타낸다.5A, an operation in which the controller 120 enlarges and arranges the virtual window 511 in response to an input from the user 50 is illustrated.
사용자(50)는 가상 윈도우(511)를 선택하여 가까이 가져올 수 있다.The user 50 may select the virtual window 511 and bring it closer.
즉, 컨트롤러(120)는 사용자(50)의 선택에 응답하여, 가상 윈도우(511)를 선택할 수 있다. 예를 들어, 컨트롤러(120)는 선택된 가상 윈도우(510)를 손(60)에 해당하는 픽처 플레인으로 역투영할 수 있다. 선택된 가상 윈도우(510)는 겉보기 크기를 유지하면서 역투영될 수 있다. 즉, 가상 윈도우(511)와 선택된 가상 윈도우(510)의 겉보기 크기가 동일할 수 있다.That is, the controller 120 may select the virtual window 511 in response to the selection of the user 50. For example, the controller 120 may back-project the selected virtual window 510 into a picture plane corresponding to the hand 60. The selected virtual window 510 can be projected back while maintaining the apparent size. That is, the apparent size of the virtual window 511 and the selected virtual window 510 may be the same.
컨트롤러(120)는 사용자(50)의 손 동작에 응답하여, 선택된 가상 윈도우(510)를 가상 윈도우(520)의 위치로 이동할 수 있다. 컨트롤러(120)는 눈(70)의 위치와 손(60)의 위치에 기초하여 가상 윈도우(510)를 확대할 수 있다. 이때, 가상 윈도우(510)와 가상 윈도우(520)의 절대 크기는 동일하지만, 겉보기 크기는 상이할 수 있다. 예를 들어, 가상 윈도우(520)는 가상 윈도우(510)보다 겉보기 크기가 더 클 수 있다. 즉, 컨트롤러(120)는 가상 윈도우(510)를 가상 윈도우(520)로 확대할 수 있다.The controller 120 may move the selected virtual window 510 to the location of the virtual window 520 in response to the hand action of the user 50. The controller 120 may enlarge the virtual window 510 based on the position of the eye 70 and the position of the hand 60. At this time, the absolute sizes of the virtual window 510 and the virtual window 520 are the same, but the apparent size may be different. For example, the virtual window 520 may have a larger apparent size than the virtual window 510. That is, the controller 120 may enlarge the virtual window 510 to the virtual window 520.
사용자(50)는 가상 윈도우(520)의 선택을 해제할 수 있다. 예를 들어, 사용자(50)는 엄지(61)와 검지(62)를 떨어뜨려 가상 윈도우(520)의 선택을 해제할 수 있다. 이에, 컨트롤러(120)는 가상 윈도우(520)를 프러스텀에 위치하는 평면(예를 들어, 벽 등)에 배치할 수 있다. 이때, 가상 윈도우(520)와 가상 윈도우(521)의 겉보기 크기는 동일하지만, 절대 크기는 상이할 수 있다. 예를 들어, 가상 윈도우(521)는 가상 윈도우(520)보다 절대 크기가 더 클 수 있다. 즉, 일련의 과정을 통해 컨트롤러(120)는 가상 윈도우(521)를 가상 윈도우(511)보다 확대된 상태로 평면에 배치할 수 있다. The user 50 may deselect the virtual window 520. For example, the user 50 may deselect the virtual window 520 by dropping the thumb 61 and the index finger 62. Accordingly, the controller 120 may place the virtual window 520 on a plane (eg, wall, etc.) positioned in the frustum. At this time, the apparent size of the virtual window 520 and the virtual window 521 are the same, but the absolute size may be different. For example, the virtual window 521 may have a larger absolute size than the virtual window 520. That is, through a series of processes, the controller 120 may place the virtual window 521 on the plane in an enlarged state than the virtual window 511.
도 5b를 참조하면, 사용자(50)의 입력에 응답하여 컨트롤러(120)가 가상 윈도우(531)를 축소하여 배치하는 동작을 나타낸다. 사용자(50)는 가상 윈도우(531)를 선택하여 가까이 가져올 수 있다.Referring to FIG. 5B, an operation in which the controller 120 reduces and arranges the virtual window 531 in response to an input from the user 50 is illustrated. The user 50 may select the virtual window 531 and bring it closer.
즉, 컨트롤러(120)는 사용자(50)의 선택에 응답하여, 가상 윈도우(531)를 선택할 수 있다. 예를 들어, 컨트롤러(120)는 선택된 가상 윈도우(530)를 손(60)에 해당하는 픽처 플레인으로 역투영할 수 있다. 선택된 가상 윈도우(530)는 겉보기 크기를 유지하면서 역투영될 수 있다. 즉, 가상 윈도우(531)와 선택된 가상 윈도우(530)의 겉보기 크기가 동일할 수 있다.That is, the controller 120 may select the virtual window 531 in response to the user 50's selection. For example, the controller 120 may back-project the selected virtual window 530 into a picture plane corresponding to the hand 60. The selected virtual window 530 can be projected back while maintaining the apparent size. That is, the apparent size of the virtual window 531 and the selected virtual window 530 may be the same.
컨트롤러(120)는 사용자(50)의 손 동작에 응답하여, 선택된 가상 윈도우(530)를 가상 윈도우(540)의 위치로 이동할 수 있다. 컨트롤러(120)는 눈(70)의 위치와 손(60)의 위치에 기초하여 가상 윈도우(530)를 축소할 수 있다. 이때, 가상 윈도우(530)와 가상 윈도우(540)의 절대 크기는 동일하지만, 겉보기 크기는 상이할 수 있다. 예를 들어, 가상 윈도우(540)는 가상 윈도우(530)보다 겉보기 크기가 더 작을 수 있다. 즉, 컨트롤러(120)는 가상 윈도우(530)를 가상 윈도우(540)로 축소할 수 있다.The controller 120 may move the selected virtual window 530 to the location of the virtual window 540 in response to the hand action of the user 50. The controller 120 may reduce the virtual window 530 based on the position of the eye 70 and the position of the hand 60. At this time, the absolute sizes of the virtual window 530 and the virtual window 540 are the same, but the apparent size may be different. For example, the virtual window 540 may have a smaller apparent size than the virtual window 530. That is, the controller 120 can reduce the virtual window 530 to the virtual window 540.
사용자(50)는 가상 윈도우(540)의 선택을 해제할 수 있다. 예를 들어, 사용자(50)는 엄지(61)와 검지(62)를 떨어뜨려 가상 윈도우(540)의 선택을 해제할 수 있다. 이에, 컨트롤러(120)는 가상 윈도우(540)를 프러스텀에 위치하는 평면(예를 들어, 벽 등)에 배치할 수 있다. 이때, 가상 윈도우(540)와 가상 윈도우(541)의 겉보기 크기는 동일하지만, 절대 크기는 상이할 수 있다. 예를 들어, 가상 윈도우(541)는 가상 윈도우(540)보다 절대 크기가 더 클 수 있다. 즉, 일련의 과정을 통해 컨트롤러(120)는 가상 윈도우(541)를 가상 윈도우(531)보다 축소된 상태로 평면에 배치할 수 있다. The user 50 can deselect the virtual window 540. For example, the user 50 may release the thumb 61 and the index finger 62 to deselect the virtual window 540. Accordingly, the controller 120 may place the virtual window 540 on a plane (eg, wall, etc.) positioned in the frustum. At this time, the apparent size of the virtual window 540 and the virtual window 541 are the same, but the absolute size may be different. For example, the virtual window 541 may have a larger absolute size than the virtual window 540. That is, through a series of processes, the controller 120 may place the virtual window 541 on the plane in a reduced state than the virtual window 531.
도 6을 참조하면, 컨트롤러(120)는 가상 윈도우(600)를 사용자(50)의 시선 벡터와 직교하도록 배치할 수 있다. 예를 들어, 컨트롤러(120)는 사용자(50)의 입력에 응답하여, 가상 윈도우(601)를 배치할 수 있다. 즉, 컨트롤러(120)는 가상 윈도우(601)를 사용자(50)의 시선 벡터와 직교하며 물리적인 평면과 맞닿는 픽처 플레인에 투영할 수 있다. 이때, 가상 윈도우(600)와 가상 윈도우(601)의 겉보기 크기는 동일할 수 있다.Referring to FIG. 6, the controller 120 may arrange the virtual window 600 to be orthogonal to the gaze vector of the user 50. For example, the controller 120 may place the virtual window 601 in response to an input from the user 50. That is, the controller 120 may project the virtual window 601 to a picture plane orthogonal to the gaze vector of the user 50 and in contact with a physical plane. At this time, the apparent size of the virtual window 600 and the virtual window 601 may be the same.
도 7은 가상 윈도우의 줌 팩터를 설명하기 위한 도면의 일 예이고, 도 8은가상 윈도우의 줌 팩터를 설명하기 위한 도면의 다른 예이다.7 is an example of a diagram for describing a zoom factor of a virtual window, and FIG. 8 is another example of a diagram for describing a zoom factor of a virtual window.
도 7을 참조하면, 사용자(50)는 D1의 거리의 벽에 위치한 W1의 폭을 갖는 가상 윈도우(711)를 선택할 수 있다. 컨트롤러(120)는 선택된 가상 윈도우(711)를 사용자(50)의 손(60)의 픽처 플레인에 역투영할 수 있다. 즉, 컨트롤러(120)는 가상 윈도우(711)를 소환하여 가상 윈도우(710)로 배치할 수 있다. 이때, 선택된 가상 윈도우(710)는 폭이 w일 수 있다.Referring to FIG. 7, the user 50 may select a virtual window 711 having a width of W 1 located on a wall at a distance of D 1 . The controller 120 may project the selected virtual window 711 back onto the picture plane of the hand 60 of the user 50. That is, the controller 120 may summon the virtual window 711 and arrange the virtual window 710. At this time, the selected virtual window 710 may have a width w.
사용자(50)는 d1의 거리에 위치한 가상 윈도우(710)를 d2의 거리로 이동시킬 수 있다. 사용자(50)의 눈(70)과 손(60)의 거리가 d1에서 d2로 가까워졌으므로, 컨트롤러(120)는 가상 윈도우(710)를 확대할 수 있다.The user 50 may move the virtual window 710 located at a distance of d 1 to a distance of d 2 . Since the distance between the eye 70 and the hand 60 of the user 50 is closer from d 1 to d 2 , the controller 120 can enlarge the virtual window 710.
사용자(50)가 엄지(61)와 검지(62)를 떨어뜨린 경우, 컨트롤러(120)는 가상 윈도우(720)를 D2의 거리에서 W2의 폭을 갖도록 벽에 배치할 수 있다. 이에, 가상 윈도우(711)는 가상 윈도우(721)로 확대되어 배치될 수 있다.When the user 50 drops the thumb 61 and the index finger 62, the controller 120 may place the virtual window 720 on the wall to have a width of W 2 at a distance of D 2 . Accordingly, the virtual window 711 may be enlarged and disposed as the virtual window 721.
도 8을 참조하면, 사용자(50)가 눈(70)과 손(60)의 거리를 0.4m에서 0.1m로 가까이 당겼을 때 줌 팩터를 설명한다.Referring to FIG. 8, the zoom factor will be described when the user 50 pulls the distance between the eye 70 and the hand 60 from 0.4 m to 0.1 m.
그래프(810)는 D1:D2 가 1:1인 경우의 그래프를 나타내고, 그래프(820)는 D1:D2 가 1:4인 경우의 그래프를 나타낸다. 영역(815 및 825)은 각 그래프(810 및 820)에서 기울기가 부드러운 영역을 의미할 수 있다. 사용자(50)는 영역(815 및 825)에서 세밀하게 가상 윈도우(800)를 제어할 수 있다.The graph 810 shows a graph when D 1 :D 2 is 1:1, and the graph 820 shows a graph when D 1 :D 2 is 1:4. The regions 815 and 825 may refer to regions in which the slope is smooth in each graph 810 and 820. The user 50 can control the virtual window 800 in detail in the regions 815 and 825.
컨트롤러(120)의 크기 조정과 관련하여, 줌 팩터(zoom factor)는 수학식 1과 같이 나타낼 수 있다.In relation to the size adjustment of the controller 120, a zoom factor may be expressed as Equation (1).
Figure 112017103894377-pat00001
Figure 112017103894377-pat00001
여기서, W1은 D1의 거리에 있는 벽에 위치한 윈도우의 폭이고, W2는 D2의 거리에 있는 벽에 위치한 윈도우의 폭이고, w는 가상 윈도우(720)의 폭이고, d1은 가상 윈도우(710)와 사용자의 눈(70) 사이의 거리이고, d2는 가상 윈도우(710)와 사용자의 눈(70) 사이의 거리일 수 있다.Here, W 1 is the width of the window located on the wall at the distance of D 1 , W 2 is the width of the window located on the wall at the distance of D 2 , w is the width of the virtual window 720, d 1 is The distance between the virtual window 710 and the user's eye 70 and d 2 may be the distance between the virtual window 710 and the user's eye 70.
도 7 및 도 8에서는 설명의 편의를 위해, 사용자(50)와 컨트롤러(120)가 상호 작용하여, 가상 윈도우(710 및 800)를 당겨 확대하는 동작을 설명하고 있으나, 반드시 이에 한정되는 것은 아니고, 아래 표 1과 같이 9 가지의 경우의 수가 존재할 수 있다.In FIGS. 7 and 8, for convenience of description, the user 50 and the controller 120 interact to describe an operation of pulling and expanding the virtual windows 710 and 800, but is not limited thereto. As shown in Table 1 below, there may be 9 cases.
Figure 112017103894377-pat00002
Figure 112017103894377-pat00002
즉, 컨트롤러(120)는 투영 기하를 사용하여 가상 윈도우를 1/16배에서 16배까지 크기 조정을 수행할 수 있다.That is, the controller 120 may perform resizing of the virtual window from 1/16 to 16 times using the projection geometry.
도 9는 일 실시예에 따른 영상 처리 방법의 순서도를 나타낸다.9 is a flowchart of an image processing method according to an embodiment.
도 9를 참조하면, 영상 처리 장치(100)는 사용자(50)의 손(60)의 위치를 획득할 수 있다(S910). 영상 처리 장치(100)는 사용자(50)의 손가락 끝의 위치를 획득할 수 있다. 이때, 영상 처리 장치(100)는 손가락 끝의 위치에 기초하여 커서를 생성할 수 있다. 영상 처리 장치(100)는 사용자(50)의 눈(70)과 손(60) 사이의 거리를 획득할 수 있다.Referring to FIG. 9, the image processing apparatus 100 may acquire the position of the hand 60 of the user 50 (S910). The image processing apparatus 100 may acquire the position of the fingertip of the user 50. At this time, the image processing apparatus 100 may generate a cursor based on the position of the finger tip. The image processing apparatus 100 may acquire a distance between the eye 70 and the hand 60 of the user 50.
영상 처리 장치(100)는 손(60)의 위치에 기초하여 가상 윈도우를 제어할 수 있다(S920). 예를 들어, 영상 처리 장치(100)는 가상 윈도우를 활성화, 선택, 이동, 크기 조정, 및 배치 중에서 적어도 하나를 수행할 수 있다. 영상 처리 장치(100)는 커서와 중첩되는 가상 윈도우를 활성화하고, 선택할 수 있다. 예를 들어, 영상 처리 장치(100)는 손(60)의 엄지의 끝과 검지의 끝 사이의 간격이 기준값 이하인 경우 가상 윈도우를 선택할 수 있다. 영상 처리 장치(100)는 손(60)의 위치에 기초하여 가상 윈도우를 이동하여 배치할 수 있다. 또한, 영상 처리 장치(100)는 눈(70)과 손(60)의 거리에 기초하여 가상 윈도우를 크기 조정하여 배치할 수 있다. 영상 처리 장치(100)는 손(60)의 엄지의 끝과 검지의 끝 사이의 간격이 기준값을 초과하는 경우 선택된 가상 윈도우(200)를 선택 해제할 수 있다. 이에, 선택 해제된 가상 윈도우(200)는 겉보기 크기를 유지하면서 상기 사용자가 지정하는 면 위치에 복귀할 수 있다.The image processing apparatus 100 may control the virtual window based on the position of the hand 60 (S920). For example, the image processing apparatus 100 may perform at least one of activating, selecting, moving, resizing, and arranging the virtual window. The image processing apparatus 100 may activate and select a virtual window overlapping the cursor. For example, the image processing apparatus 100 may select a virtual window when the distance between the tip of the thumb of the hand 60 and the tip of the index finger is less than or equal to a reference value. The image processing apparatus 100 may move and arrange a virtual window based on the position of the hand 60. In addition, the image processing apparatus 100 may resize and arrange the virtual window based on the distance between the eye 70 and the hand 60. The image processing apparatus 100 may deselect the selected virtual window 200 when the distance between the tip of the thumb of the hand 60 and the tip of the index finger exceeds a reference value. Accordingly, the deselected virtual window 200 may return to the position of the surface designated by the user while maintaining the apparent size.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The device described above may be implemented with hardware components, software components, and/or combinations of hardware components and software components. For example, the devices and components described in the embodiments may include, for example, processors, controllers, arithmetic logic units (ALUs), digital signal processors (micro signal processors), microcomputers, field programmable gate arrays (FPGAs). , A programmable logic unit (PLU), microprocessor, or any other device capable of executing and responding to instructions, may be implemented using one or more general purpose computers or special purpose computers. The processing device may run an operating system (OS) and one or more software applications running on the operating system. In addition, the processing device may access, store, manipulate, process, and generate data in response to the execution of the software. For convenience of understanding, a processing device may be described as one being used, but a person having ordinary skill in the art, the processing device may include a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that may include. For example, the processing device may include a plurality of processors or a processor and a controller. In addition, other processing configurations, such as parallel processors, are possible.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instruction, or a combination of one or more of these, and configure the processing device to operate as desired, or process independently or collectively You can command the device. Software and/or data may be interpreted by a processing device or to provide instructions or data to a processing device, of any type of machine, component, physical device, virtual equipment, computer storage medium or device. , Or may be permanently or temporarily embodied in the transmitted signal wave. The software may be distributed on networked computer systems, and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, or the like alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment or may be known and usable by those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs, DVDs, and magnetic media such as floptical disks. -Hardware devices specially configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include high-level language code that can be executed by a computer using an interpreter, etc., as well as machine language codes produced by a compiler. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described by a limited embodiment and drawings, those skilled in the art can make various modifications and variations from the above description. For example, the described techniques are performed in a different order than the described method, and/or the components of the described system, structure, device, circuit, etc. are combined or combined in a different form from the described method, or other components Alternatively, even if replaced or substituted by equivalents, appropriate results can be achieved.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (20)

  1. 가상 현실(virtual reality(VR)) 또는 증강 현실(augmented reality(AR)) 상에서 영상을 처리하는 방법에 있어서,
    사용자를 센싱한 정보를 획득하는 단계; 및
    상기 정보에 기초하여 제1 위치에 배치된 가상 윈도우를 겉보기 크기(apparent size)를 유지하면서 절대 크기를 조절하여 제2 위치에 배치하는 단계
    를 포함하고,
    상기 제1 위치 및 상기 제2 위치는 동일한 사각뿔 형태의 프러스텀(frustum) 내 꼭지점으로부터 거리가 다른 수직 단면인 3D 윈도우 관리 방법.
    A method for processing an image on a virtual reality (VR) or augmented reality (AR),
    Obtaining information sensing the user; And
    Adjusting the absolute size of the virtual window disposed at the first position based on the information while maintaining the apparent size, and placing the virtual window at the second position
    Including,
    The first position and the second position is a 3D window management method that is a vertical cross-section with a different distance from the vertex in the same square pyramid-shaped frustum (frustum).
  2. 제1항에 있어서,
    상기 제2 위치에 배치된 가상 윈도우는 상기 사용자에 의해 제어가 가능한 상태인 3D 윈도우 관리 방법.
    According to claim 1,
    The virtual window disposed in the second position is a 3D window management method in a state that can be controlled by the user.
  3. 제1항에 있어서,
    상기 배치하는 단계는,
    상기 정보에 기초하여 상기 제1 위치에 배치된 가상 윈도우를 활성화하는 단계; 및
    상기 정보에 기초하여 활성화된 가상 윈도우를 선택하는 단계
    를 포함하는 3D 윈도우 관리 방법.
    According to claim 1,
    The placing step,
    Activating a virtual window disposed at the first location based on the information; And
    Selecting an activated virtual window based on the information
    3D window management method comprising a.
  4. 제3항에 있어서,
    상기 활성화하는 단계는,
    상기 사용자의 눈의 위치 및 상기 사용자의 손의 위치에 기초하여 상기 제1 위치에 배치된 가상 윈도우를 활성화하는 단계
    를 포함하는 3D 윈도우 관리 방법.
    According to claim 3,
    The activating step,
    Activating a virtual window disposed at the first location based on the location of the user's eye and the location of the user's hand
    3D window management method comprising a.
  5. 제3항에 있어서,
    상기 선택하는 단계는,
    상기 사용자의 손의 동작에 기초하여 상기 활성화된 가상 윈도우를 선택하는 단계
    를 포함하는 3D 윈도우 관리 방법.
    According to claim 3,
    The step of selecting,
    Selecting the activated virtual window based on the action of the user's hand
    3D window management method comprising a.
  6. 제1항에 있어서,
    상기 제2 위치는 상기 사용자의 손의 위치인 3D 윈도우 관리 방법.
    According to claim 1,
    The second location is a 3D window management method that is the location of the user's hand.
  7. 제1항에 있어서,
    상기 제1 위치에 배치된 가상 윈도우가 상기 제2 위치에 배치된 후 상기 사용자를 센싱한 정보에 응답하여 상기 가상 윈도우의 절대 크기(absolute size)를 유지하면서 겉보기 크기를 확대 또는 축소하는 단계
    를 더 포함하는 3D 윈도우 관리 방법.
    According to claim 1,
    Expanding or reducing the apparent size while maintaining the absolute size of the virtual window in response to information sensed by the user after the virtual window disposed at the first position is disposed at the second position
    3D window management method further comprising.
  8. 제7항에 있어서,
    확대 또는 축소시킨 가상 윈도우를 겉보기 크기를 유지하면서 상기 제1 위치로 복귀시키는 단계
    를 더 포함하는 3D 윈도우 관리 방법.
    The method of claim 7,
    Returning the enlarged or reduced virtual window to the first position while maintaining an apparent size
    3D window management method further comprising.
  9. 제1항에 있어서,
    상기 제1 위치에 배치된 가상 윈도우가 상기 제2 위치에 배치된 후 상기 사용자를 센싱한 정보에 응답하여 상기 가상 윈도우의 절대 크기를 유지하면서 제3 위치로 이동시키는 단계
    를 더 포함하는 3D 윈도우 관리 방법.
    According to claim 1,
    After the virtual window disposed in the first position is disposed in the second position, moving to a third position while maintaining the absolute size of the virtual window in response to information sensed by the user.
    3D window management method further comprising.
  10. 제9항에 있어서,
    상기 제3 위치로 이동시킨 가상 윈도우를 겉보기 크기를 유지하면서 상기 사용자의 눈의 위치 및 상기 사용자의 손의 위치에 기초하여 제 4 위치로 배치하는 단계
    를 더 포함하는 3D 윈도우 관리 방법.
    The method of claim 9,
    Arranging the virtual window moved to the third position to a fourth position based on the position of the user's eye and the position of the user's hand while maintaining an apparent size.
    3D window management method further comprising.
  11. 가상 현실(VR) 또는 증강 현실(AR) 상에서 영상을 처리하는 장치에 있어서,
    사용자의 정보를 획득하는 센서(sensor); 및
    상기 정보에 기초하여 제1 위치에 배치된 가상 윈도우를 겉보기 크기를 유지하면서 절대 크기를 조절하여 제2 위치에 배치하는 컨트롤러(controller)
    를 포함하고,
    상기 제1 위치 및 상기 제2 위치는 동일한 사각뿔 형태의 프러스텀(frustum) 내 꼭지점으로부터 거리가 다른 수직 단면인 3D 윈도우 관리 장치.
    In the apparatus for processing an image on a virtual reality (VR) or augmented reality (AR),
    A sensor for acquiring user information; And
    A controller that controls the absolute size of the virtual window disposed at the first position and adjusts the absolute size at the second position based on the information.
    Including,
    The first position and the second position are 3D window management devices having different vertical distances from the vertices in the same square pyramid-shaped frustum.
  12. 제11항에 있어서,
    상기 제2 위치에 배치된 가상 윈도우는 상기 사용자에 의해 제어가 가능한 상태인 3D 윈도우 관리 장치.
    The method of claim 11,
    The virtual window disposed at the second position is a 3D window management device in a state that can be controlled by the user.
  13. 제11항에 있어서,
    상기 컨트롤러는,
    상기 정보에 기초하여 상기 제1 위치에 배치된 가상 윈도우를 활성화하고, 상기 정보에 기초하여 활성화된 가상 윈도우를 선택하는 3D 윈도우 관리 장치.
    The method of claim 11,
    The controller,
    3D window management apparatus for activating a virtual window disposed at the first location based on the information and selecting an activated virtual window based on the information.
  14. 제13항에 있어서,
    상기 컨트롤러는,
    상기 사용자의 눈의 위치 및 상기 사용자의 손의 위치에 기초하여 상기 제1 위치에 배치된 가상 윈도우를 활성화하는 3D 윈도우 관리 장치.
    The method of claim 13,
    The controller,
    3D window management device for activating a virtual window disposed in the first position based on the position of the user's eye and the position of the user's hand.
  15. 제13항에 있어서,
    상기 컨트롤러는,
    상기 사용자의 손의 동작에 기초하여 상기 활성화된 가상 윈도우를 선택하는 3D 윈도우 관리 장치.
    The method of claim 13,
    The controller,
    3D window management device for selecting the activated virtual window based on the operation of the user's hand.
  16. 제11항에 있어서,
    상기 제2 위치는 상기 사용자의 손의 위치인 3D 윈도우 관리 장치.
    The method of claim 11,
    The second location is a 3D window management device that is the location of the user's hand.
  17. 제11항에 있어서,
    상기 컨트롤러는,
    상기 제1 위치에 배치된 가상 윈도우가 상기 제2 위치에 배치된 후 상기 사용자를 센싱한 정보에 응답하여 상기 가상 윈도우의 절대 크기를 유지하면서 겉보기 크기를 확대 또는 축소하는 3D 윈도우 관리 장치.
    The method of claim 11,
    The controller,
    3D window management device for expanding or reducing the apparent size while maintaining the absolute size of the virtual window in response to information sensed by the user after the virtual window disposed at the first position is disposed at the second position.
  18. 제17항에 있어서,
    상기 컨트롤러는,
    확대 또는 축소 시킨 가상 윈도우를 겉보기 크기를 유지하면서 상기 제1 위치로 복귀시키는 3D 윈도우 관리 장치.
    The method of claim 17,
    The controller,
    3D window management device for returning the enlarged or reduced virtual window to the first position while maintaining the apparent size.
  19. 제11항에 있어서,
    상기 컨트롤러는,
    상기 제1위치에 배치된 가상 윈도우가 상기 제2 위치에 배치된 후 상기 사용자를 센싱한 정보에 응답하여 상기 가상 윈도우의 절대 크기를 유지하면서 제3 위치로 이동시키는 3D 윈도우 관리 장치.
    The method of claim 11,
    The controller,
    A 3D window management apparatus for moving a virtual window disposed at the first location to a third location while maintaining the absolute size of the virtual window in response to information sensed by the user after being disposed at the second location.
  20. 제19항에 있어서,
    상기 컨트롤러는,
    상기 제3 위치로 이동시킨 가상 윈도우를 겉보기 크기를 유지하면서 상기 사용자의 눈의 위치 및 상기 사용자의 손의 위치에 기초하여 제4 위치로 배치하는 3D 윈도우 관리 장치.
    The method of claim 19,
    The controller,
    A 3D window management device for arranging the virtual window moved to the third position to a fourth position based on the position of the user's eye and the position of the user's hand while maintaining an apparent size.
KR1020170136760A 2017-10-20 2017-10-20 Method for managing 3d windows in augmented reality and virtual reality using projective geometry KR102138412B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170136760A KR102138412B1 (en) 2017-10-20 2017-10-20 Method for managing 3d windows in augmented reality and virtual reality using projective geometry

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020170136760A KR102138412B1 (en) 2017-10-20 2017-10-20 Method for managing 3d windows in augmented reality and virtual reality using projective geometry
PCT/KR2018/012314 WO2019078632A1 (en) 2017-10-20 2018-10-18 3d window management method using projective geometry in augmented reality and virtual reality
US16/754,959 US20200242844A1 (en) 2017-10-20 2018-10-18 3d window management method using projective geometry in augmented reality and virtual reality

Publications (2)

Publication Number Publication Date
KR20190044389A KR20190044389A (en) 2019-04-30
KR102138412B1 true KR102138412B1 (en) 2020-07-28

Family

ID=66173263

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170136760A KR102138412B1 (en) 2017-10-20 2017-10-20 Method for managing 3d windows in augmented reality and virtual reality using projective geometry

Country Status (3)

Country Link
US (1) US20200242844A1 (en)
KR (1) KR102138412B1 (en)
WO (1) WO2019078632A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020246639A1 (en) * 2019-06-05 2020-12-10 엘지전자 주식회사 Method for controlling augmented reality electronic device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170060230A1 (en) * 2015-08-26 2017-03-02 Google Inc. Dynamic switching and merging of head, gesture and touch input in virtual reality
JP6093473B1 (en) * 2016-08-19 2017-03-08 株式会社コロプラ Information processing method and program for causing computer to execute information processing method
JP2017102732A (en) * 2015-12-02 2017-06-08 株式会社ソニー・インタラクティブエンタテインメント Display control device and display control method

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120062170A (en) * 2010-12-06 2012-06-14 삼성전자주식회사 Method and device for controlling a virtual multi-monitor
KR20150032028A (en) * 2013-09-16 2015-03-25 유재천 Three dimensional space-touch screen apparatus and method using the same
KR20170096420A (en) * 2016-02-16 2017-08-24 삼성전자주식회사 Apparatus and method for interactive 3D display

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170060230A1 (en) * 2015-08-26 2017-03-02 Google Inc. Dynamic switching and merging of head, gesture and touch input in virtual reality
JP2017102732A (en) * 2015-12-02 2017-06-08 株式会社ソニー・インタラクティブエンタテインメント Display control device and display control method
JP6093473B1 (en) * 2016-08-19 2017-03-08 株式会社コロプラ Information processing method and program for causing computer to execute information processing method

Also Published As

Publication number Publication date
US20200242844A1 (en) 2020-07-30
KR20190044389A (en) 2019-04-30
WO2019078632A1 (en) 2019-04-25

Similar Documents

Publication Publication Date Title
AU2017100683A4 (en) User interface for camera effects
AU2019203776B2 (en) Touch input cursor manipulation
US10222980B2 (en) Touch input cursor manipulation
US10592041B2 (en) Device, method, and graphical user interface for transitioning between display states in response to a gesture
AU2017200737B2 (en) Multi-application environment
JP6215433B2 (en) Tile array
US20190065027A1 (en) Systems, Methods, and Graphical User Interfaces for Interacting with Augmented and Virtual Reality Environments
US10346510B2 (en) Device, method, and graphical user interface for providing handwriting support in document editing
KR102115714B1 (en) Systems, devices, and methods for dynamically providing user interface controls at a touch-sensitive secondary display
US10133396B2 (en) Virtual input device using second touch-enabled display
Kim Human-computer interaction: fundamentals and practice
US9542080B2 (en) User interface virtualization of context menus
US20190018562A1 (en) Device, Method, and Graphical User Interface for Scrolling Nested Regions
US20170060360A1 (en) Managing workspaces in a user interface
US10452223B2 (en) Three-dimensional space for navigating objects connected in hierarchy
KR101683224B1 (en) Multipoint pinch gesture control of search results
US10775971B2 (en) Pinch gestures in a tile-based user interface
US9298266B2 (en) Systems and methods for implementing three-dimensional (3D) gesture based graphical user interfaces (GUI) that incorporate gesture reactive interface objects
US10503255B2 (en) Haptic feedback assisted text manipulation
US10152192B2 (en) Scaling application windows in one or more workspaces in a user interface
AU2011239221B2 (en) Managing workspaces in a user interface
KR101693764B1 (en) User interface for multiple display regions
US8525808B1 (en) Method and system to launch and manage an application on a computer system having a touch panel input device
JP5980913B2 (en) Edge gesture
RU2557463C2 (en) Dual screen portable touch sensitive computing system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
X091 Application refused [patent]
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant