WO2022158834A1 - 타겟 평면 검출 및 공간 추정을 위한 장치 및 방법 - Google Patents
타겟 평면 검출 및 공간 추정을 위한 장치 및 방법 Download PDFInfo
- Publication number
- WO2022158834A1 WO2022158834A1 PCT/KR2022/000951 KR2022000951W WO2022158834A1 WO 2022158834 A1 WO2022158834 A1 WO 2022158834A1 KR 2022000951 W KR2022000951 W KR 2022000951W WO 2022158834 A1 WO2022158834 A1 WO 2022158834A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- plane
- points
- point cloud
- value
- defining
- Prior art date
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 98
- 238000000034 method Methods 0.000 title claims abstract description 61
- 230000004044 response Effects 0.000 claims description 21
- 238000005259 measurement Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 description 32
- 238000004891 communication Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 12
- 230000003190 augmentative effect Effects 0.000 description 9
- 230000000007 visual effect Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 5
- 238000009877 rendering Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000033001 locomotion Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000012800 visualization Methods 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 210000003128 head Anatomy 0.000 description 2
- 239000004984 smart glass Substances 0.000 description 2
- HBBGRARXTFLTSG-UHFFFAOYSA-N Lithium ion Chemical compound [Li+] HBBGRARXTFLTSG-UHFFFAOYSA-N 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000004886 head movement Effects 0.000 description 1
- 229910052734 helium Inorganic materials 0.000 description 1
- 239000001307 helium Substances 0.000 description 1
- SWQJXJOGLNCZEY-UHFFFAOYSA-N helium atom Chemical compound [He] SWQJXJOGLNCZEY-UHFFFAOYSA-N 0.000 description 1
- 238000002329 infrared spectrum Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 229910001416 lithium ion Inorganic materials 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 201000003152 motion sickness Diseases 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 238000012958 reprocessing Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 230000002459 sustained effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/30—Polynomial surface description
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
- G06T7/593—Depth or shape recovery from multiple images from stereo images
Definitions
- This disclosure relates generally to computer vision and platforms for augmented reality (AR). More specifically, the present disclosure relates to an apparatus and method for target plane detection and spatial estimation.
- AR augmented reality
- Augmented reality (AR) experiences and extended reality (XR) experiences provide a user's view of a production environment (e.g. the real world) through an AR or XR device (e.g. a head mounted display) of digitally controlled content. (view) and presents unique challenges in terms of managing the limited processing and power resources of the device.
- AR Augmented reality
- XR extended reality
- the device Left unmanaged, the device maintains a digital understanding of its own world (e.g., recognizing physical surfaces to hold digital objects in place) and the processing load and power consumption associated with creating and displaying an XR experience rapidly increases. can increase, which in turn drains the battery, reduces the frame rate of the XR experience and generates heat from the processor.
- a digital understanding of its own world e.g., recognizing physical surfaces to hold digital objects in place
- the processing load and power consumption associated with creating and displaying an XR experience rapidly increases. can increase, which in turn drains the battery, reduces the frame rate of the XR experience and generates heat from the processor.
- the present disclosure provides an apparatus and method for target plane detection and spatial estimation.
- a method comprises obtaining scene data, wherein the scene data comprises image data of a scene and depth data of the scene, the depth data being depth measurements of points in a point cloud.
- the method includes defining a first detection area comprising a spatially defined subset of the scene data, defining a planar model based on points of a point cloud within the first detection area, and generating the planar model The method further includes defining a plane based on the base.
- the method includes determining at least one value of the usable size of the plane based on the points of the point cloud; comparing with one value, and in response to determining that the at least one value of the characteristic size of the digital object is less than the at least one value of the usable size of the plane, on the plane based on the plane model. and generating a display including the digital object located at
- an apparatus comprises a depth sensor and a memory.
- the memory includes instructions that, when executed by the processor, cause the apparatus to obtain scene data, wherein the scene data includes image data of a scene from the image sensor and the image data of a scene from the depth sensor. It includes depth data of the scene, wherein the depth data includes depth measurement values of points of the point cloud.
- the memory further comprises instructions, the instructions, when executed by the processor, cause the apparatus to define a first detection region, the first detection region comprising a spatially defined subset of the scene data. and define a plane model based on the points of the point cloud within the first detection area, define a plane based on the plane model, and use the available size of the plane based on the points of the point cloud.
- a non-transitory computer readable medium includes instructions that, when executed by a processor, cause an apparatus to obtain scene data, the scene data comprising image data and depth of a scene from an image sensor. and depth data of the scene from a sensor, the depth data comprising depth measurements of points in a point cloud.
- the medium includes instructions that, when executed by a processor, cause an apparatus to define a first detection region, wherein the first detection region includes a spatially defined subset of the scene data; define a plane model based on points of the point cloud within the first detection area, define a plane based on the plane model, and have at least a usable size of the plane based on the points of the point cloud.
- FIG. 1 shows an example of an apparatus according to certain embodiments of the present disclosure
- FIG. 2 shows an example of an apparatus according to a specific embodiment of the present disclosure.
- 3A and 3B illustrate an example of providing an XR display in accordance with certain embodiments of the present disclosure.
- 4A and 4B illustrate example operations of a method for performing plane detection and spatial estimation in accordance with certain embodiments of the present disclosure.
- 5A, 5B, 5C, 5D, and 5E provide visualizations of aspects of performing plane detection and spatial estimation in accordance with certain embodiments of the present disclosure.
- FIG. 6 illustrates an example of utilizing detection of a first plane to improve efficiency of detecting an adjacent plane in accordance with certain embodiments of the present disclosure.
- FIG. 7 illustrates example operations of a method for performing plane detection and size estimation in accordance with a particular embodiment of the present disclosure.
- Couple and its derivatives refers to direct or indirect communication between two or more elements, whether or not they are in physical contact with each other.
- transmit encompass both direct and indirect communication.
- communicate encompass both direct and indirect communication.
- include and “include” and their derivatives mean inclusive without limitation.
- the term “or” is inclusive and/or means.
- the phrase “associated” and its derivatives include, contained within, interconnected, implied, implied, connected or connected, combined or combined, communicable, cooperating, interleaved, juxtaposed.
- controller means any device, system, or part thereof that controls one or more operations. Such a controller may be implemented in hardware or a combination of hardware and software and/or firmware. Functions associated with a particular controller may be centralized or distributed, whether local or remote.
- the phrase “at least one” when used with a list of items means that different combinations of one or more of the listed items may be used and that only one item in the list may be required. For example, "one or more of A, B and C” includes any one of the combinations of A, B, C, A and B, A and C, B and C, A and B and C.
- computer programs each of which is formed in computer-readable program code and embodied in a computer-readable medium.
- application and “program” refer to one or more computer programs, software components, sets of instructions, procedures, functions, objects, classes, instances, related data, or their associated data, adopted for implementation in a suitable computer-readable program.
- computer readable program code includes computer code of any type, including source code, object code, and executable code.
- computer readable medium means a computer readable medium, such as read only memory (ROM), random access memory (RAM), hard disk drive, compact disc (CD), digital video disc (DVD), or any other type of memory.
- Non-transitory computer-readable media excludes wired, wireless, optical, or other communication links that carry transitory electrical or other signals.
- Non-transitory computer-readable media includes media in which data can be permanently stored, such as a rewritable optical disc or erasable memory device, and media in which data can be stored and overwritten later.
- the device 100 may be implemented as one or more of a smartphone, a tablet, or a head mounted device (HMD) for providing an augmented reality (AR) experience.
- the device 100 is a wearable device, or otherwise has a small form factor, or is otherwise designed such that the weight of the system and heat output from the device 100 are important design considerations. That is, in certain embodiments, device 100 has limited battery and processing resources, which without limitation extend battery life, reduce battery weight, increase frame rate, and increase the speed of processor(s) of device 100 . To reduce heat build-up from overuse, we place a significant premium on delivering the XR experience as efficiently as possible.
- the embodiment of the device 100 shown in FIG. 1 is merely an example, and other configurations are possible.
- the embodiment of device 100 shown in FIG. 1 is for illustration only. It is also noted that suitable devices are provided in a wide variety of configurations, and that FIG. 1 does not limit the scope of the present disclosure to any particular implementation of the device.
- FIG. 1 does not limit the scope of the present disclosure to any particular implementation of the device.
- certain embodiments according to the present disclosure are described as being implemented on a mobile XR platform, embodiments according to the present disclosure are not so limited, and embodiments implemented on other platforms exist within the contemplated scope of the present disclosure. do.
- the device 100 includes, for example, a communication unit 110 , a transmit (TX) processing circuit 115 , a microphone 120 , which may include a radio frequency (RF) transceiver, a Bluetooth transceiver, or a Wi-Fi transceiver, or the like. , receive (RX) processing circuitry 125 .
- the device 100 includes a speaker 130 , a main processor 140 , an input/output (I/O) interface (IF) 145 , an input/output device(s) 150 , and a memory 160 . Also includes.
- the memory 160 includes an operating system (OS) program 161 and one or more applications 162 .
- OS operating system
- Applications 162 include games, social media applications, applications for geotagging photos and other items of digital content, extended reality (XR) applications, operating systems, device security (eg, anti-theft and device tracking).
- Resources of device 100 including but not limited to application or resources of device 100 , speaker 130 , microphone 120 , input/output devices 150 , and additional resources 180 . may include any other applications that access
- application 162 includes an application that may consume or otherwise utilize identification of planar surfaces in the field of view of a visual sensor of device 100 .
- the communication unit 110 may receive an incoming RF signal, for example, a short-range communication signal such as a Bluetooth or Wi-Fi signal.
- the communication unit 110 may generate an intermediate frequency (IF) or baseband signal by down-converting an incoming RF signal.
- the IF or baseband signals are sent to RX processing circuitry 125 which generates processed baseband signals by filtering, decoding and/or digitizing the baseband or IF signals.
- the RX processing circuitry 125 transfers the processed baseband signal to the speaker 130 (eg, for voice data) or for further processing (eg, for web browsing data, online gameplay data, notification data, or other message data).
- the communication unit 110 may include a network interface such as a network card or a network interface implemented through software.
- the TX processing circuitry 115 receives analog or digital voice data from the microphone 120 or other outgoing baseband data (such as web data, email or interactive video game data) from the main processor 140 . .
- the TX processing circuitry 115 encodes, multiplexes, or digitizes the outgoing baseband data to generate a processed baseband or IF signal.
- the communication unit 110 receives the processed outgoing baseband or IF signal from the TX processing circuitry 115 and up-converts the baseband or IF signal to an RF signal for transmission.
- the main processor 140 may include one or more processors or other processing devices, and may execute an OS program 161 stored in the memory 160 to control the overall operation of the device 100 .
- the main processor 140 may control the reception of forward channel signals and transmission of reverse channel signals by the communication unit 110, RX processing circuitry 125, and TX processing circuitry 115 according to well-known principles. can be controlled
- the main processor 140 includes at least one microprocessor or microcontroller.
- main processor 140 is a low power processor, such as a processor, that includes control logic to minimize consumption of battery 199 or to minimize heat build-up in device 100 .
- the main processor 140 may also execute other processes and programs residing in the memory 160 .
- the main processor 140 may move data into or out of the memory 160 according to a request of an execution process.
- the main processor 140 is configured to execute the application 162 based on the OS program 161 or in response to input from a user or application 162 .
- the application 162 may include an application developed specifically for the platform of the device 100 , or a legacy application developed for a previous platform.
- the main processor 140 is also coupled to an I/O interface 145, providing the device 100 the ability to connect to other devices such as laptop computers and handheld computers.
- the I/O interface 145 is a communication path between these accessories and the main processor 140 .
- the main processor 140 is also coupled to an input/output device(s) 150 .
- An operator of the device 100 may input data into the device 100 using an input/output device(s) 150 .
- Input/output device(s) 150 may include a keyboard, touch screen, mouse(s), track ball, or other devices that may act as a user interface that allows a user to interact with device 100 .
- input/output device(s) 150 may include a touch panel, augmented or virtual reality headset, (digital) pen sensor, key, or ultrasound input device.
- the input/output device(s) 150 includes one or more screens, which may be liquid crystal displays, light emitting diode (LED) displays, optical LEDs (OLEDs), active matrix OLEDs (AMOLEDs), or other screens capable of rendering graphics.
- the memory 160 is connected to the main processor 140 . According to a particular embodiment, a portion of the memory 160 includes random access memory (RAM) and another portion of the memory 160 includes flash memory or other read-only memory (ROM).
- RAM random access memory
- ROM read-only memory
- FIG. 1 shows an example of device 100 , various changes may be made to FIG. 1 .
- the device 100 may further include a separate graphics processing unit (GPU) 170 .
- device 100 includes various additional resources 180 that may be accessed by application 162 if allowed.
- the additional resources 180 include an accelerometer or inertial measurement unit (IMU) 182 , which may detect movement of the electronic device along one or more degrees of freedom.
- Additional resources 180 include, in some embodiments, one or more dynamic vision sensors 184 of device 100 , and one or more cameras 186 (eg, a complementary metal oxide semiconductor (CMOS) sensor type camera). do.
- CMOS complementary metal oxide semiconductor
- the DVS sensor(s) 184 includes a pair of dynamic vision sensors spaced at a stereoscopically appropriate distance to estimate depth over a depth of interest. According to some embodiments, the DVS sensor(s) 184 includes a plurality of DVS sensors with overlapping or partially overlapping fields of view.
- the aforementioned components of device 100 are powered by a battery 199 (eg, a rechargeable lithium ion battery), the size, charge capacity, and load capacity of the battery being in some embodiments. limited by the user needs and form factor of the device.
- battery 199 eg, a rechargeable lithium ion battery
- the size, charge capacity, and load capacity of the battery being in some embodiments. limited by the user needs and form factor of the device.
- battery 199 is configured to fit within the housing of the smartphone and (eg, operates the graphics processing unit at full power for a sustained period of time) ) is configured not to support current loads that result in heat build-up.
- the size (and implicitly the charge capacity) of the battery 199 may enable the device 100 to reduce the burden on the user's neck and facilitate head movement. It may be limited by the need to keep it light.
- FIG. 1 shows an example of a device 100 for providing an augmented or extended reality experience
- the device 100 may include any number of components in any suitable arrangement.
- devices including computing and communication systems, are provided in a wide variety of configurations, and FIG. 1 does not limit the scope of the present disclosure to any particular configuration.
- 1 illustrates one operating environment in which the various features disclosed in this patent document may be used, such features may be used in any other suitable system.
- FIG. 2 shows an example of an XR device 200 in accordance with one or more embodiments of the present disclosure.
- the XR apparatus 200 may operate as an accessory device to another device (eg, a smartphone), which may be provided as part of the XR experience provided via the XR apparatus 200 . Acts as a client device to a host system (eg, device 100 in FIG. 1 ) that creates and contributes to rendering of digital objects.
- the XR device 200 includes a head mounted display (HMD) or a pair of smart glasses.
- HMD head mounted display
- the XR device 200 of the present invention is a virtual reality (VR), mixed reality (MR), and augmented reality (AR).
- VR virtual reality
- MR mixed reality
- AR augmented reality
- ) may correspond to a device capable of providing at least one digital experience, and may correspond to each of a virtual reality device, a mixed reality device, and an augmented reality device, but is not limited thereto.
- the XR device 200 includes an outward facing camera 205 .
- Arrows 201 are provided to illustrate this non-limiting example.
- Arrow 201 points outward towards the field of view away from the projection direction of the inner-facing display of XR device 200 .
- the outward-facing camera 205 is an RGB digital video camera (eg, a camera using a CMOS sensor).
- the outward facing camera 205 is a camera capable of detecting light at wavelengths outside the visible range of the human eye (eg, infrared).
- the outward facing camera 205 is a dynamic vision sensor (DVS), which provides an event stream of changes in intensity of light received at pixels of the sensor of the DVS.
- DVD dynamic vision sensor
- outward-facing camera 205 generates image data as an event stream or as discrete image frames, from which planes within a slice of the physical world within the field of view of outward-facing camera 205 are digital in the XR experience. Sites for placing objects may be recognized and used by one or more XR applications.
- the XR device 200 includes a display 207 .
- display 207 displays items of XR content in an inward-facing direction (eg, in a direction with a component opposite arrow 201 ) with an outward-facing view of objects in the field of view. do.
- the display 207 is substantially transparent (eg, similar to the display used in “smart glasses” or “head-up display” on an airplane cockpit glass) and outward-facing objects in the field of view. Views come from light passing through display 207 .
- display 207 is opaque, and the view of objects in the outward-facing field of view is from an outward-facing camera (eg, outward-facing camera 205 ). from image data.
- the XR device 200 includes a second camera 209 .
- the second camera 209 is an outward-facing camera of the same type as the outward-facing camera 205 , thereby forming a stereoscopic pair capable of generating image data including a depth estimate.
- the second camera 209 is an outward-facing camera that has a different sensor type than the outward-facing camera 205 .
- the outward facing camera 205 is a DVS sensor and the second camera 209 is less efficient than the DVS sensor but additional images useful for object recognition.
- the second camera 209 is an inward facing camera that tracks the movement of the user's eyes and implicitly the direction of the user's gaze. Gaze tracking can be used to identify portions of the field of view that the user is actually looking at, thereby supporting XR content placement and rendering items of XR content away from the viewer's line of sight at low resolution, conserving processing and battery resources. It provides guidance on where to find it.
- the XR device 200 includes a processor 211 and a memory 213 .
- the memory 213 is program code that, when executed by the processor 211 , causes the XR device 200 to execute an AR application or a computational component of the AR application (eg, detecting a plane within a field of view). includes
- the XR device 200 includes an inertial measurement unit 215 that generates location data associated with movement of the XR device 200 along one or more degrees of freedom.
- the data output from the IMU 215 may include image stabilization data (e.g., to facilitate object recognition) or for positioning (e.g., to ascertain the geospatial location of the XR device 200). For example, data indicating the direction and periodicity of camera shake) may be used.
- the XR device 200 includes an input/output interface 217 .
- the I/O interface 217 provides a communication connection between the XR device 200 and at least one other electronic device, such as a smartphone or computer, to which the XR device 200 is an accessory device.
- I/O interface 217 is, in certain embodiments, a wireless communication interface, such as a Bluetooth transceiver, or communication hardware that supports communication over one or more long-range wireless systems (eg, communication unit 110 of FIG. 1 ). .
- a wireless communication interface such as a Bluetooth transceiver
- communication hardware that supports communication over one or more long-range wireless systems
- the depth data is obtained three-dimensionally through a parallax change between the first camera 205 and the second camera 209 , but other embodiments are possible and are within the contemplated scope of the present disclosure.
- the depth data may be acquired using a Light Detection and Ranging (LIDAR) scanner integrated in the XR apparatus 200 .
- LIDAR Light Detection and Ranging
- a LIDAR scanner projects a known pattern of light points (typically points in the infrared spectrum) across the field of view and scans the field of view to identify surfaces on which the projected points are visible. By modulating or shifting the projection of the pattern across the field of view and monitoring the changes in which the points are seen, a point cloud of depth data points can be obtained.
- depth data may be obtained using other sensors, such as time of flight (“ToF”) sensors.
- ToF time of flight
- FIGS. 3A and 3B illustrate aspects of the role of plane detection and spatial estimation for providing an XR experience in a head mounted device (eg, XR device 200 in FIG. 2 ) in accordance with various embodiments of the present disclosure; do.
- a head mounted device eg, XR device 200 in FIG. 2
- FIGS. 3A and 3B illustrate aspects of the role of plane detection and spatial estimation for providing an XR experience in a head mounted device (eg, XR device 200 in FIG. 2 ) in accordance with various embodiments of the present disclosure; do.
- elements common to FIGS. 3A and 3B are cross-referenced.
- the XR platform 305 includes an untethered head mounted display (eg, device 100 of FIG. 1 ) that is worn on the user's 301 head, such as a pair of sunglasses.
- the low-power XR platform 305 includes a transparent lens 307 through which the user 301 can view objects in the operating environment 300 , through which the low-power XR platform 305 can view XR objects or visual objects. Assets may be projected into the field of view of the user 301 to provide an extended reality (“XR”) experience.
- XR extended reality
- the term “XR experience” refers to an XR object rendered to have the appearance of not only the operating environment but also the visual assets or physical objects within the operating environment and looking different from other perspectives like actual physical objects.
- the expression “XR” encompasses a variety of digital experiences incorporating digital objects, such as physical objects with a perspective dependent appearance.
- the expression “XR” encompasses, without limitation, virtual reality (VR), mixed reality (MR) and augmented reality (AR) digital experiences.
- the XR platform 305 in this example is a battery powered device worn on the user's head, and thus applies to computing platforms that are portable or powered from an external power supply (eg, an alternating current outlet in a building). It is subject to operational constraints beyond the Examples of operational constraints that may be particularly applicable to the XR platform 305 include weight, implicitly battery capacity (since most users prefer not to wear heavier devices with larger batteries), processor consumption and heat build-up (as a worn device, where heat build-up is particularly undesirable due to harsh execution of the processor), and accurate placement of digital objects relative to the physical objects of the XR display (incorrect or unstable placement of digital objects is may degrade the experience and cause motion sickness).
- identifying planar surfaces within the operating environment as suitable locations for placing digital objects within the XR display is an essential part of creating an XR display. This is in many cases due to the extent to which digital and physical objects interact convincingly with each other and appear to conform (at least in part) to a common set of physical constraints. For example, in many applications, digital objects placed on a horizontal surface (e.g., a table top) are either positioned within the plane of the physical surface and appear as "floating" objects, or by extending beyond the plane of the physical object. It is expected to appear as objects that look unrealistic and detract from the mixed reality effects offered by XR displays.
- a horizontal surface e.g., a table top
- operating environment 300 is a room comprising at least three fixed planar surfaces, a floor 310 , a first wall 315 and a second wall 320 , each of which has a fixed dimension. and their spatial relationships to each other and to a reference direction (eg gravitational direction 325).
- the XR platform 305 is running an application that presents digital objects that appear to be located on physical surfaces of the operating environment 300 . To this end, the XR platform 305 needs to recognize the appropriate planar surfaces within the operating environment 300 . Also, given that the XR platform 305 in this example is a head mounted device, efficient identification of one or more suitable planes within the operating environment 300 for placing the digital object is possible.
- plane identification for an XR application is performed by initially identifying all planes, defining the overall field of view of the XR device, and then selecting the appropriate plane from the set of identified planes.
- the computationally expensive step of identifying a plane from depth and image data is dependent on the display parameters of the digital object (eg size and orientation) and the physical surfaces with which the digital object is intended to interact. carried out without consideration.
- These historical approaches waste processor and battery resources analyzing depth and image data, which can clearly identify a plane unsuitable for placing a digital object by location or other factors within the XR display.
- the digital object provided by the XR platform 305 is a graphic of a field of view 340 having a footprint or characteristic dimension represented by a coordinate region 330 .
- certain embodiments in accordance with the present disclosure are available to identify planes for placing digital objects. It processes only a target subset of depth and image data, thereby reducing unnecessary processing to identify planes that are not suitable candidates for placing a particular digital object by location or other properties of those planes in the field of view.
- the digital object is a wall clock 340 showing the time to the wearer of the XR platform 305
- the XR platform 305 is either not being viewed by the wearer or the location of the watch 340 .
- Planar recognition is not performed in the part of the field of view that is not suitable for determination. For example, if eye tracking sensors in the XR platform 305 indicate that the user 301 is facing the front, the sensor field of view of the XR platform 305 , such as the ceiling 327 and the first wall 315 , Depth and image data from peripheral parts may be excluded from analysis.
- the operating environment 300 Depth and image data from previously so analyzed regions of ? may be excluded in the process of identifying a plane suitable for field of view 340 positioning.
- XR purpose-specific planes within image and depth data of the operating environment of an XR platform (eg, XR device 200 of FIG. 2 or XR platform 305 of FIG. 3 ).
- the operations of the method for identifying are shown. Although the flowchart depicts a series of sequential steps, unless explicitly stated, a specific order of performance, sequential performance, or intervening or intervening steps occur in a manner that is not concurrently or overlapping with the performance of the steps or portions of those steps. No inferences shall be drawn from the sequence relating exclusively to the performance of the illustrated steps without According to a specific embodiment, methods for identifying a suitable XR purpose specific plane include at least the following components: (1) plane detection (described with reference to FIG. 4A ); and (2) spatial estimation (described with reference to FIG. 4B). As seen in the figure itself, certain operations shown in FIG. 4A proceed to or from those shown in FIG. 4B .
- a new iteration of the method 400 for detecting an appropriate plane in the operating environment of the XR platform is triggered.
- the repetition of the method 400 is triggered due to a program event within the XR application (eg, rendering of a digital object to be placed on a plane in terms of the operating environment of the XR platform).
- iterations of method 400 may depend on the program logic of previous iterations of method 400, such as when a suitable plane for positioning a digital object was not found in a given subset of available image/depth data. triggered by
- a target location for a specific digital object within a field of view of the XR display provided by the XR platform is set.
- the target location is set based on sensor input, such as tracking a gaze or field of view direction of the wearer of the XR platform.
- the target location may correspond to the portion of the field of view in which the user's gaze was trained.
- the target location is set programmatically based on one or more predefined properties of a digital object. For example, if the digital object is a representation of something typically found on a floor, the target location is based on a prediction of a possible location of the floor in the operating environment.
- the target location may be determined based on a particular user input (eg, tracking a user's hand pointing towards a portion of the field of view).
- the target location may be set based on artificial intelligence (AI) predictions or other data-trained machine models.
- AI artificial intelligence
- Other embodiments in which other mechanisms for setting a portion of the field of view to the target location are used are possible and are within the contemplated scope of the present disclosure.
- point cloud data is obtained, wherein the point cloud data includes a plurality of data points, wherein each data point combines an in-field coordinate of the XR platform with a measured depth value of a surface in the operating environment associate
- the point cloud is generated using a visual combination in which outputs are fed to a visual simultaneous location and mapping (v-SLAM) pipeline.
- the depth data is obtained using a LIDAR scanner or a time-of-flight sensor.
- image data for a field of view of an XR platform (eg, an output of a CMOS image sensor) is obtained.
- the image data associates a coordinate location (eg, individual pixels) with values in a color space.
- the field of view of the sensor(s) providing the point cloud data and the image data need not be perfectly identical, but in many embodiments the sensor(s) providing the point cloud data and the sensor providing the image data There is a lot of overlap in the parts of the scene (the part of the operating environment in which the XR device is trained) that are within the field of view of the (s).
- the target location set in operation 403 is located within an overlap region between the collected point cloud data and the image data.
- XR uses artificial intelligence (AI) or otherwise applies a data-training model to determine what is within the shared field of view of the sensors providing image data and depth data. Determine whether there are recognizable objects.
- AI artificial intelligence
- the XR platform performs object recognition based on detected features using a binary robust invariant scalable keypoint (“BRISK”) algorithm.
- BRISK binary robust invariant scalable keypoint
- the operating environment 300 further includes a person standing near a wall. Since the wall clock is mounted on a wall rather than a person, by recognizing a person, a viewing area including a person as a candidate for positioning the clock 340 may be excluded.
- the XR platform defines a plane detection area based on the previous target location, point cloud data and image data, and, if applicable, the object identification in operation 409 .
- the plane detection area comprises a spatially defined subset of scene data.
- the shared field of view of image and depth sensors may be divided into quadrants, one of which is selected as the planar detection area.
- the size and location of the planar detection area is an area that meets one or more predefined constraints.
- Equation 1 the dimension (eg, width or height) of the planar detection area can be given by Equation 1 below:
- L pd is the dimension of the planar detection area along a given axis (eg, the x or y axis), expressed as part of the dimensions of the shared field of view of the image and depth sensors.
- L do is the dimension of the digital object to be placed on the plane in the plane detection area along the given axis
- D pc is the quantification of the point cloud data density in the area around the target location.
- the XR platform defining the plane detection area also collects set points in the plane detection area.
- the collected point set includes three or more points of the selected point cloud within the detection area.
- the XR platform defines an initial planar model based on the set of points collected in operation 411 .
- the plane model is a vector representation of a plane, wherein the origin of the vector comprises a point in the plane and the vector defines a normal to the plane.
- defining the plane model in operation 413 is a plane hypothesis, and the first step of an iteration of a random sample consensus ("RANSAC") process that identifies the plane most available in the plane detection area. make up RANSAC turns out to be an effective way to define a plane from noisy or potentially noisy data sets.
- RANSAC random sample consensus
- the XR platform randomly selects points within the plane detection area, fits a plane model with the randomly selected points, and the hypothesis defined in operation 413 for the plane fitted with the randomly selected points ( hypothesis) to test the flat model.
- the XR platform determines whether the hypothetical plane model defined in operation 413 is better than the plane generated in operation 415 . If in operation 415 the plane generated based on the random points is not better than the hypothetical plane generated in operation 413 (ie, the “NO” branch of block 417 ), the method 400 loops back to operation 415 and a better plane It is determined whether or not it can be obtained from other randomly selected points within the plane detection area.
- the method 400 proceeds to operation 419 and , where the plane generated in the operation replaces the plane model defined as the hypothetical plane in task 413.
- the method 400 proceeds to block 421 , where the XR platform determines whether the current hypothesis plane constitutes the best available plane. According to a particular embodiment, it is determined whether the current hypothetical plane is based on one or more of the following factors: the number of previous iterations of operations 413 - 419, a time constraint on the processing time for plane identification (i.e., the difficult plane To avoid frame rate degradation of XR display due to identification scenarios) or quantify the fit between current hypothesis planes that exceed a threshold.
- the method 400 performs an operation on plane detection (ie, the From accurately identifying planes in the operating environment as recorded by depth and image data, tasks pertaining to spatial estimation, such as those described with reference to FIG. 4B beginning with task 423 (i.e., the detected plane to determine whether it is of sufficient size to place a digital object).
- plane detection ie, the From accurately identifying planes in the operating environment as recorded by depth and image data, tasks pertaining to spatial estimation, such as those described with reference to FIG. 4B beginning with task 423 (i.e., the detected plane to determine whether it is of sufficient size to place a digital object).
- the method 400 loops back to operation 413, where a new hypothetical plane model is defined.
- the RANSAC methodology for determining the plane is particularly suitable for noisy data sets.
- the depth data is sparse and/or noisy
- certain embodiments according to the present disclosure may, for example, be located in point clouds that are not generally suitable for placing digital objects. Avoid extensive plane detection cycles from locations.
- the method 400 proceeds to spatial estimation, where the XR indicates that the detected plane represents a digital object. Determines whether it extends far enough for accurate placement.
- an often important dimension of the performance of an XR platform is whether digital objects appear (or can appear to be) constrained by the spatial and physical constraints of physical objects (eg, gravity) in the operating environment. is the range). In many applications, it is unnatural to place digital objects in a way that appears to arbitrarily ignore such physical constraints (eg, by extending far beyond the plane of the support surface or appearing to "swallow" the object at the support surface). and detracts from the XR experience.
- the XR platform begins the process of performing spatial estimation by calculating currently known dimensions of the plane based on the point cloud data points used to detect the plane.
- the currently known dimensions of the plane calculated in operation 423 are generally not co-located with the plane's boundaries. Rather, the currently known dimensions of the plane are determined by the spatial distribution of the data points of the point cloud from which the plane was determined. In this manner, certain embodiments in accordance with the present disclosure strive to analyze scene data (or depth and image area of the operating environment) only as necessary for the limited purpose of accurately placing digital objects, thereby making them identifiable unnecessary. Avoid wasted processing cycles to process data.
- the XR platform compares the calculated size of the plane to the desired size of the digital object.
- the XR platform sets at least one value of the usable size of the plane (eg, the shortest diagonal of the plane) the characteristic size of the digital object (eg, diameter or The length of the calculated plane is compared with the size of the digital object by comparing it with at least one value of the longest diagonal line).
- the XR platform proceeds with a determination as to whether the calculated size of the plane is greater than the desired size of the digital object.
- the method 400 proceeds to operation 499, where the results of the plane detection and spatial estimation operations are is output to one or more applications running on the XR platform.
- the results of plane detection and spatial estimation are output to the XR application in vector format, which renders an XR display in which the digital object is placed on the detected plane.
- the method 400 when it is determined that the calculated size of the plane is less than the desired size of the digital object (ie, the “NO” branch of block 427 ), the method 400 returns to block 431 .
- Proceed where the XR platform determines whether there are additional point cloud data points within the plane detection area defined in operation 411 .
- certain embodiments according to the present disclosure look for additional data points to support an increase in the known size of the plane.
- the method 400 proceeds to operation 433, where the XR platform determines the point cloud adjacent to the current plane. Acquire data points and test to see if additional point cloud data points fit the detected plane. If there are additional point cloud data points within the plane, the detected plane is expanded to include the additional point cloud points, and the method 400 loops back to operation 423. In a particular embodiment, the detected plane Multiple iterations of operations 423 - 433 may be necessary before scaling to a point large enough to accommodate this digital object.
- the method 400 proceeds to operation 435 , where the method 400 executes a new plane detection region. is restarted from
- FIGS. 5A-5E provide visualizations of aspects of plane detection and spatial estimation in accordance with certain embodiments of the present disclosure.
- the embodiments shown in FIGS. 5A-5E are for illustrative purposes only and other embodiments may be used without departing from the scope of the present disclosure.
- elements common to one or more of FIGS. 5A-5E are numbered similarly.
- a scene 500 includes a portion of the operating environment within the shared field of view of one or more image sensors and one or more depth sensors of the XR platform. More simply, as used herein, the term “scene” includes a view of a portion of an environment in which digital objects may be placed on planes determined according to the apparatus and method of the present disclosure.
- the XR platform attempts to find a planar surface for placing a digital object containing a representation of a small container (eg, a coffee cup) within the scene 500 .
- a small container eg, a coffee cup
- the XR platform operates their operations to understand the three-dimensional properties of their environments, for example, to know that area 501 of table 503 is a suitable place to place a container.
- There is a need to continuously process images and depth data of environments. This same ability to quickly invoke connections between previously formed connections and visual information regarding the three-dimensional properties of objects also allows humans to locate regions of the scene 500 (e.g., the location of the container). (top of flat screen display 505) that is not suitable for quick exclusion.
- a processor-based device does not rely on triggering the pre-trained connections between what the pre-trained connections see and how those pre-trained connections may interact with objects, the image provided to the processor. and an understanding of the three-dimensional operating environment represented in the depth data, typically computed instead.
- XR platforms need to specifically process depth data points without limitation to identify a plane within the point cloud of depth data points. Depending on the density of the scene and point cloud, identifying a plane within a scene can be computationally very expensive.
- Each depth point (eg, depth point 509 ) is data that associates a coordinate or location within the scene with a measured distance from the XR platform to a physical object in the scene.
- the processor iteratively selects RANSAC or points of the point cloud 507 , and applies another methodology of fitting and testing the plane to a set of data points.
- 5C illustrates the set of planes 511 in the scene 500 identified by iteratively processing the set of points in the point cloud 507 .
- identifying all planes within the point cloud may take many processing iterations.
- the computational load associated with identifying a plane that is not relevant to the task at hand is further augmented by having to recalculate the positions of those planes.
- iteratively processing and reprocessing point cloud data to identify planes that are not immediately used by the XR platform can significantly degrade performance in several dimensions such as battery life and frame rate. have.
- a particular embodiment in accordance with the present disclosure achieves significant efficiency gains in detecting planes in a point cloud of depth data by carefully reducing the set of depth data points at which plane detection is performed. do. Instead of performing plane detection over all points in the point cloud 507 .
- the XR platform in accordance with certain embodiments of the present disclosure, includes a subset of the depth points of the point cloud 507 that is more likely to provide a suitable plane for placing a digital object (eg, the operation of FIG. 4A ). In 411), plane detection and spatial estimation are performed over a spatially defined plane detection area. All other things being equal, processing a smaller number of points in the point cloud directly reduces the overall processing.
- the plane detection area is defined as comprising one or more predefined slices of the scene.
- the scene 500 is divided into 25 sections, of which only two are selected to define a planar detection area 517 . Determining an initial constraint on the data to be processed that excludes predictably irrelevant regions of the scene, as visualized by the illustrative example of FIG. 5E showing a region 501 disposed within a scene 500, An XR device according to certain embodiments of the disclosure may close some of the gaps in terms of efficiency in obtaining a functional understanding of the visual data of a scene.
- FIG. 6 illustrates an example of how apparatus and methods in accordance with some embodiments of the present disclosure may achieve additional efficiency gains in plane detection and size estimation.
- the present disclosure detects a plane suitable for the function of an XR application (eg, positioning of a digital object in an XR display) within depth data of a scene where depth of scene and images are the main inputs to the process of plane recognition and While the focus has been made on embodiments involving limitations, the present disclosure is not so limited.
- a result of the first plane detection and size estimation operation may be utilized to improve efficiency of the second plane detection and size estimation operation.
- first plane 601 represents the output of a previous iteration of a plane detection method (eg, method 400 of FIGS. 4A and 4B ) applied to the depth data of the scene.
- the first plane 601 may be represented by a first vector 603 whose origin includes a point in the first plane 601 and whose direction defines a normal to the plane.
- Certain embodiments in accordance with the present disclosure facilitate detection of multiple (or all planes in a scene) planes by using one or more previously detected planes to set the target location (eg, in operation 403 of FIG. 4A ). may facilitate, define a detection area (eg, in operation 411 of FIG. 4A ) or limit parameters of the hypothetical plane model (eg, in operation 413 ). In this manner, certain embodiments may identify additional planes of interest while still limiting the volume of depth data to be processed.
- the detected characteristics of the first plane 601 may be used to facilitate detection of the second plane 605 in a variety of ways.
- the digital object to be placed on the XR display is an image of an object (eg, a ladder) that simultaneously touches a vertical plane and an adjacent horizontal plane in the physical world.
- the characteristics of the digital object to be placed on the XR display dictate specific parameters of the second plane 605 , ie, the second plane 605 needs to touch the first plane 601 .
- the second normal vector 607 representing the two planes 605 indicates that it needs to be perpendicular to the first vector 603 .
- the plane detection area can be set based on the neighborhood of the first plane 601
- the range of possible plane models is a plane based on the second normal vector 607 perpendicular to the first vector 603 . limited to models only.
- a method of utilizing a first detected plane to detect a second plane that satisfies one or more expected conditions described with reference to FIG. 6 is more efficient than simply processing the entire point cloud within the scene. It can be repeated and expanded to identify all planes.
- an understanding of all planes in a scene can be generated by detecting the plane of the floor in the scene and then detecting all planes connected to that floor plane and planes connected to it.
- almost all planes can be detected in most scenes (except scenes in operating environments with many self-supporting objects such as drones and helium-filled balloons), which means that non-flying objects are supported objects. This is because gravity requires it to connect directly or indirectly to the floor plane through one or more planes.
- FIG. 7 illustrates operations of a method 700 for performing plane detection and spatial estimation in accordance with various embodiments of the present disclosure.
- the flowchart depicts a series of sequential steps, unless explicitly stated, a specific order of performance, sequential performance, or intervening or intervening steps occur in a manner that is not concurrently or overlapping with the performance of the steps or portions of those steps. No inferences shall be drawn from the sequence relating exclusively to the performance of the illustrated steps without
- the operations described with reference to method 700 may be performed on an XR platform capable of acquiring depth and image data (eg, device 100 of FIG. 1 , XR apparatus 200 of FIG. 2 , or XR of FIG. 3A ). platform 305) without limitation.
- Other hardware configurations are possible, such as configurations where certain processing steps are performed on a separate platform (eg, a smartphone) and data is relayed to and from a viewing device worn by the user, and are within the contemplated scope of the present disclosure. .
- the processor acquires scene data.
- the obtained scene data comprises image data correlating coordinates within the field of view of a visual sensor (eg CMOS sensor) of the XR device with values in a color space.
- the depth data is data that associates coordinates within a portion of a field of view of a depth sensor that overlap a portion of field of view of the sensor(s) generating the image data with a distance from the depth sensor (eg, a LIDAR scanner). It contains a point cloud of points.
- the processor defines a first detection region comprising a spatially defined subset of the scene data (eg, a boundary region within a shared field of view of a depth sensor and an image sensor). .
- the processor can process the data to be processed to find a plane suitable for the requirements of the XR application (eg, a plane having a valid orientation and size for placing a digital object). reduce the amount of
- the first detection area is defined based on at least a set target location (eg, the location set in operation 403 of FIG. 4A ).
- AI-based object recognition is performed to identify some or all of the objects in the scene in order to exclude portions of the scene data that are not candidates for inclusion in the first detection area.
- the processor defines a plane model (eg, the plane defined in operation 413 of FIG. 4A ) based on the depth data points in the first detection area.
- the plane model is defined according to certain constraint requirements, such as an angular range for a normal vector of the plane, to ensure parallelism or perpendicularity with one or more previously detected planes.
- the processor defines a plane (eg, the plane found in operation 415 of FIG. 4A ) based on the plane model.
- defining the plane in operation 720 comprises multiple steps of a sample and refinement process (eg, RANSAC) to modify the initial plane hypothesis to best fit the depth data available in the first detection region. performing iterations.
- RANSAC sample and refinement process
- the processor may determine at least one value among available sizes of the defined plane.
- the usable size corresponds to a smallest value of a characteristic dimension (eg, length, width or diameter) of the detected plane.
- the at least one value of the usable size is a product or composite of multiple dimension values (eg, an estimate of the area of the plane).
- the processor compares at least one value of the characteristic size of the digital object with at least one value of the usable size of the plane.
- the value of the characteristic size of the object corresponds to the smallest value among the characteristic dimensions (eg, length, width or diameter) of the digital object.
- the processor performs a determination as to whether a currently defined plane provides sufficient space to place the digital object.
- the processor in response to determining that at least one value of the usable size of the plane is greater than at least one value of the characteristic size of the digital object, performs the steps of the digital object and the detection Created an XR display using a flat surface.
- the digital object is disposed within an image data area in the XR display corresponding to the detected plane.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Geometry (AREA)
- Optical Radar Systems And Details Thereof (AREA)
Abstract
장면 데이터를 획득하는 단계, 상기 장면 데이터의 공간적으로 정의된 서브세트를 포함하는 제1 검출 영역을 정의하는 단계, 상기 제1 검출 영역 내의 포인트 클라우드의 포인트에 기초하여 평면 모델을 정의하는 단계, 상기 평면 모델을 기반으로 평면을 정의하는 단계, 상기 포인트 클라우드의 포인트들에 기초하여 상기 평면의 사용 가능한 크기의 적어도 하나의 값을 결정하는 단계, 디지털 객체의 특성 크기의 적어도 하나의 값을 상기 평면의 사용 가능한 크기의 상기 적어도 하나의 값과 비교하는 단계, 및 상기 평면 모델에 기초하여 상기 평면 상에 위치한 상기 디지털 객체를 포함하는 디스플레이를 생성하는 단계를 포함하는 타겟 평면 검출 및 공간 추정을 위한 방법 및 장치를 개시한다.
Description
본 개시는 일반적으로 증강 현실(augmented reality, AR)을 위한 컴퓨터 비전 및 플랫폼에 관한 것이다. 보다 구체적으로, 본 개시는 타겟 평면 검출 및 공간 추정을 위한 장치 및 방법에 관한 것이다.
증강 현실(augmented reality, AR) 경험 및 확장 현실(extended reality, XR) 경험은 디지털로 제어되는 콘텐츠를 AR 또는 XR 장치(예: 헤드 마운트 디스플레이)를 통해 운영 환경(예: 실제 환경)의 사용자 뷰 (view)에 통합하며, 상기 장치의 제한된 처리 및 전력 자원을 관리하는 측면에서 고유한 문제를 제시한다.
관리되지 않은 상태로 두면, 상기 장치 자신의 세계에 대한 디지털적인 이해를 유지하고(예: 디지털 객체들을 고정하기 위한 물리적 표면들 인식) XR 경험을 생성 및 표시하는 것과 연관된 처리 부하 및 전력 소비가 빠르게 증가할 수 있으며, 이는 차례로 배터리를 고갈시키고, XR 경험의 프레임 속도를 줄이며 프로세서에서 열을 발생시킨다.
따라서, XR 장치에서 디지털 세계 이해를 생성하고 유지하는 것과 연관된 전력 소비 및 처리 부하를 줄이는 것은 컴퓨터 비전 분야의 개선 및 확장된 현실 경험을 제공을 위한 기술적 도전 및 기회의 원천으로 남아 있다.
본 개시는 타겟 평면 검출 및 공간 추정을 위한 장치 및 방법을 제공한다.
제1 측면에 따른, 방법은 장면 데이터를 획득하는 단계를 포함하며, 여기에서 상기 장면 데이터는 장면의 이미지 데이터 및 상기 장면의 깊이 데이터를 포함하고, 상기 깊이 데이터는 포인트 클라우드의 포인트들의 깊이 측정값들을 포함한다. 상기 방법은 상기 장면 데이터의 공간적으로 정의된 서브세트를 포함하는 제1 검출 영역을 정의하는 단계, 상기 제1 검출 영역 내의 포인트 클라우드의 포인트에 기초하여 평면 모델을 정의하는 단계, 및 상기 평면 모델을 기반으로 평면을 정의하는 단계를 더 포함한다. 또한, 상기 방법은 상기 포인트 클라우드의 포인트들에 기초하여 상기 평면의 사용 가능한 크기의 적어도 하나의 값을 결정하는 단계, 디지털 객체의 특성 크기의 적어도 하나의 값을 상기 평면의 사용 가능한 크기의 상기 적어도 하나의 값과 비교하는 단계, 및 상기 디지털 객체의 특성 크기의 적어도 하나의 값이 상기 평면의 사용 가능한 크기의 상기 적어도 하나의 값보다 작다는 결정에 응답하여, 상기 평면 모델에 기초하여 상기 평면 상에 위치한 상기 디지털 객체를 포함하는 디스플레이를 생성하는 단계를 포함한다.
제2 측면에 따른, 장치는 깊이 센서 및 메모리를 포함한다. 상기 메모리는 명령어들을 포함하며, 상기 명령어들은 상기 프로세서에 의해 실행될 때 상기 장치로 하여금 장면 데이터를 획득하도록 하고, 여기에서 상기 장면 데이터는 상기 이미지 센서로부터의 장면의 이미지 데이터 및 상기 깊이 센서로부터의 상기 장면의 깊이 데이터를 포함하며, 상기 깊이 데이터는 포인트 클라우드의 포인트들의 깊이 측정 값들을 포함한다. 상기 메모리는 명령어들을 더 포함하며, 상기 명령어들은 상기 프로세서에 의해 실행될 때 상기 장치로 하여금, 제1 검출 영역을 정의하도록 하며, 상기 제1 검출 영역은 상기 장면 데이터의 공간적으로 정의된 서브세트를 포함하고, 상기 제1 검출 영역 내 상기 포인트 클라우드의 포인트들을 기반으로 평면 모델을 정의하도록 하며, 상기 평면 모델을 기반으로 평면을 정의하도록 하며, 상기 포인트 클라우드의 포인트들에 기초하여 상기 평면의 사용 가능한 크기의 적어도 하나의 값을 결정하도록 하며, 디지털 객체의 특성 크기의 적어도 하나의 값을 상기 평면의 사용 가능한 크기의 상기 적어도 하나의 값과 비교하도록 하며, 상기 디지털 객체의 특성 크기의 적어도 하나의 값이 상기 평면의 사용 가능한 크기의 상기 적어도 하나의 값보다 작다는 결정에 응답하여, 상기 평면 모델에 기초하여 상기 평면 상에 위치한 상기 디지털 객체를 포함하는 디스플레이를 생성하도록 한다.
제3 실시예에서, 비-일시적 컴퓨터 판독가능 매체는 명령어들을 포함하며, 상기 명령어들은 프로세서에 의해 실행될 때 장치로 하여금 장면 데이터를 획득하도록 하고, 상기 장면 데이터는 이미지 센서로부터 장면의 이미지 데이터 및 깊이 센서로부터의 상기 장면의 깊이 데이터를 포함하며, 상기 깊이 데이터는 포인트 클라우드의 포인트들의 깊이 측정 값들을 포함한다. 상기 매체는 명령어들을 포함하며, 상기 명령어들은 프로세서에 의해 실행될 때 장치로 하여금 제1 검출 영역을 정의하도록 하며, 여기에서 상기 제1 검출 영역은 상기 장면 데이터의 공간적으로 정의된 서브세트를 포함하고, 상기 제1 검출 영역 내 상기 포인트 클라우드의 포인트들을 기반으로 평면 모델을 정의하도록 하며, 상기 평면 모델을 기반으로 평면을 정의하도록 하며, 상기 포인트 클라우드의 포인트들에 기초하여 상기 평면의 사용 가능한 크기의 적어도 하나의 값을 결정하도록 하며, 디지털 객체의 특성 크기의 적어도 하나의 값을 상기 평면의 사용 가능한 크기의 상기 적어도 하나의 값과 비교하도록 하며, 상기 디지털 객체의 특성 크기의 적어도 하나의 값이 상기 평면의 사용 가능한 크기의 상기 적어도 하나의 값보다 작다는 결정에 응답하여, 상기 평면 모델에 기초하여 상기 평면 상에 위치한 상기 디지털 객체를 포함하는 디스플레이를 생성하도록 한다.
다른 기술적 특징들은 이어지는 도면들, 설명 및 청구 범위로부터 당업자에게 쉽게 자명할 수 있다.
본 개시 및 그 개시의 이점에 대한 보다 완전한 이해를 위해, 첨부 도면과 관련하여 취해진 다음 설명을 이제 참조한다.
도 1은 본 개시의 특정 실시예들에 따른 장치의 예를 도시한다.
도 2는 본 개시의 특정 실시예에 따른 장치의 예를 도시한다.
도 3a 및 도 3b는 본 개시의 특정 실시예에 따른 XR 디스플레이를 제공하는 예를 도시한다.
도 4a 및 도 4b는 본 개시의 특정 실시예에 따른 평면 검출 및 공간 추정을 수행하는 방법의 일 예의 동작들을 도시한다.
도 5a, 5b, 5c, 5d 및 5e는 본 개시의 특정 실시예에 따라 평면 검출 및 공간 추정을 수행하는 모습들의 시각화를 제공한다.
도 6은 본 개시의 특정 실시예에 따라 인접 평면을 검출하는 효율성을 개선하기 위해 제1 평면의 검출을 활용하는 예를 도시한다.
도 7은 본 개시의 특정 실시예에 따른 평면 검출 및 크기 추정을 수행하는 방법의 예의 동작들을 도시한다.
아래의 상세한 설명을 착수하기 전에 본 특허 문서 전체에서 사용된 특정 단어들 및 구문들의 정의를 설명하는 것이 유리할 수 있다. "결합하다"의 용어 및 그 파생어들은 두 개 이상의 요소들이 서로 물리적으로 접촉하는지 여부에 관계없이 두 개 이상의 요소들 간의 직접 또는 간접 통신을 의미한다. "전송하다", "수신하다" 및 "통신하다"의 용어들 그리고 그것들의 파생어들은 직접 및 간접 통신을 둘 모두를 망라한다. "구비하다" 및 "포함하다"의 용어들 그리고 그것들의 파생어들은 파생어는 제한없는 포함을 의미한다. 용어 "또는"은 포괄적이며, 및/또는을 의미한다. 구절 "연관된" 및 그것의 파생어는 포함하는, 내부에 포함된, 상호 접속하는, 내포하는, 내부에 내포하는, 접속하거나 접속하는, 결합하거나 결합되는, 통신 가능한, 협력하는, 인터리브하는, 병치하는, 근접한, 결합되거나 결합되어 있는, 구비하며, 속성을 가지며, 관계를 갖거나 관련이 있는 등을 의미한다. "제어기"라는 용어는 하나 이상의 작동을 제어하는 임의의 디바이스, 시스템 또는 그것들의 일부를 의미한다. 그런 제어기는 하드웨어 또는 하드웨어와 소프트웨어 및/또는 펌웨어의 조합으로 구현될 수 있다. 특정 제어기와 연관된 기능은 로컬 또는 원격에 관계없이 중앙 집중화되거나 분산될 수 있다. 아이템들의 목록과 함께 사용될 때 "적어도 하나"라는 구절은 열거된 아이템들 중 하나 이상의 상이한 조합들이 사용될 수 있으며 그리고 그 목록에서 하나의 아이템만이 필요할 수 있음을 의미한다. 예를 들어, "A, B 및 C 중 하나 이상"은 A, B, C, A와 B, A와 C, B와 C, A와 B와 C의 조합들 중 어느 하나를 포함한다.
더욱이, 아래에서 설명되는 다양한 기능들은 하나 이상의 컴퓨터 프로그램에 의해 구현되거나 지원될 수 있으며, 이들 각각은 컴퓨터 판독가능 프로그램 코드로 형성되고 컴퓨터 판독가능 매체에 구현된다. "애플리케이션"및 "프로그램"의 용어들은, 적절한 컴퓨터 판독가능 프로그램에서의 구현을 위해 채택된 하나 이상의 컴퓨터 프로그램, 소프트웨어 컴포넌트, 명령어들의 세트, 프로시져, 함수, 객체, 클래스, 인스턴스, 관련 데이터 또는 그것들의 일부를 언급하는 것이다. "컴퓨터 판독가능 프로그램 코드"라는 구절은 소스 코드, 객체 코드 및 실행 코드를 포함한 임의 유형의 컴퓨터 코드를 포함한다. "컴퓨터 판독가능 매체"라는 문구는 ROM (read only memory), RAM (Random Access Memory), 하드 디스크 드라이브, CD (compact disc), DVD (digital video disc) 또는 어떤 다른 유형의 메모리처럼, 컴퓨터에 의해 액세스될 수 있는 임의 유형의 매체를 포함한다. "비 일시적" 컴퓨터 판독가능 매체는 일시적인 전기적인 또는 다른 신호들을 수송하는 유선, 무선, 광학 또는 다른 통신 링크들을 제외한다. 비 일시적 컴퓨터 판독가능 매체는 재기록 가능 광 디스크 또는 지울 수 있는 메모리 디바이스처럼 데이터가 영구적으로 저장될 수 있는 매체 및 데이터가 저장되고 나중에 덮어쓸 수 있는 매체를 포함한다.
다른 특정 단어들 및 구절들에 대한 정의들은 본 특허 문서 전반에 걸쳐 제공된다. 당업자는 대부분의 경우는 아니지만 많은 경우에, 그러한 정의들은 그렇게 정의된 단어들 및 구절들의 미래의 사용들은 물론이며 이전 사용들에도 적용된다는 것을 이해해야 한다.
아래에서 설명되는, 도 1 내지 도 7 및 본 특허 문헌에서 본 개시의 원리를 설명하기 위해 사용되는 다양한 실시예들은 단지 예시를 위한 것이며, 본 개시의 범위를 제한하는 방식으로 해석되지 않아야 한다. 당업자는 본 개시의 원칙들이 임의의 적절하게 배열된 처리 장치에서 구현될 수 있다는 것을 이해할 것이다.
도 1은 본 개시의 일부 실시예에 따른 XR 경험을 제공하기 위한 플랫폼으로서 동작하는 디바이스(100)의 비제한적인 예를 도시한다. 본 개시의 다양한 실시예들에 따르면, 상기 디바이스(100)는 증강 현실(AR) 경험을 제공하기 위한 스마트폰, 태블릿, 또는 헤드 마운트 디바이스(HMD) 중 하나 이상으로서 구현될 수 있다. 일부 실시예에서, 상기 디바이스(100)는 웨어러블 디바이스이거나, 그렇지 않으면 작은 폼 팩터를 갖거나, 그렇지 않으면 시스템의 중량 및 디바이스(100)로부터의 열 출력이 중요한 설계 고려 사항이 되도록 설계된다. 즉, 특정 실시예에서, 디바이스(100)는 제한된 배터리 및 처리 자원들을 가지며, 이는 제한 없이 배터리 수명을 연장하고, 배터리 무게를 줄이며, 프레임 속도를 증가시키며 그리고 디바이스(100)의 프로세서(들)의 과도한 사용으로 인한 열 축적을 줄이기 위해서 가능한 효율적으로 XR 경험을 제공하는 데 상당한 프리미엄을 둔다.
도 1에 도시된 디바이스(100)의 실시예는 예시일 뿐이며 다른 구성들도 가능한다. 도 1에서 보이는 디바이스(100)의 실시예는 단지 예시를 위한 것이다. 적절한 디바이스들은 매우 다양한 구성으로 제공되며, 도 1은 본 개시의 범위를 디바이스의 임의의 특정 구현으로 제한하지 않는다는 점에 또한 유의한다. 예를 들어, 본 개시에 따른 특정 실시예는 모바일 XR 플랫폼에서 구현되는 것으로 설명되지만, 본 개시에 따른 실시예는 그렇게 제한되지 않으며, 다른 플랫폼에서 구현되는 실시예들이 본 개시의 고려된 범위 내에 존재한다.
도 1의 비제한적인(non-limiting) 예에 도시된 바와 같이. 상기 디바이스(100)는 예를 들어 라디오 주파수 (RF) 트랜시버, 블루투스 트랜시버, 또는 Wi-Fi 트랜시버 등을 포함할 수 있는 통신 유닛(110), 전송(TX) 처리 회로(115), 마이크로폰(120), 수신(RX) 처리 회로(125)를 포함한다. 상기 디바이스(100)는 스피커(130), 메인 프로세서(140), 입/출력(I/O) 인터페이스(IF)(145), 입/출력 디바이스(들)(150), 및 메모리(160)를 또한 포함한다. 상기 메모리(160)는 운영 체제(OS) 프로그램(161) 및 하나 이상의 애플리케이션들(162)을 포함한다.
애플리케이션(162)은 게임, 소셜 미디어 애플리케이션, 사진 및 디지털 콘텐츠의 다른 항목에 대한 지오태깅 (geotagging)을 위한 애플리케이션, 확장 현실(XR) 애플리케이션, 운영 체제, 디바이스 보안(예: 도난 방지 및 디바이스 추적) 애플리케이션 또는 디바이스 (100)의 자원들, 스피커(130), 마이크로폰(120), 입/출력 디바이스들(150), 및 추가 자원들(180)을 포함하나 이에 제한되지 않는 디바이스(100)의 자원들에 액세스하는 어떤 다른 애플리케이션들을 포함할 수 있다. 일부 실시예에 따르면, 애플리케이션(162)은 디바이스(100)의 시각 센서의 시야에서 평면형 표면들에 대한 식별을 소비하거나 달리 활용할 수 있는 애플리케이션을 포함한다.
통신 유닛(110)은 인입하는 RF 신호, 예를 들어, 블루투스나 와이파이 신호와 같은 근거리 통신 신호를 수신할 수 있다. 상기 통신 유닛(110)은 인입하는 RF 신호를 하향 변환하여 IF(intermediate frequency) 또는 기저대역 신호를 생성할 수 있다. 상기 IF 또는 기저대역 신호들은, 그 기저대역 또는 IF 신호들을 필터링, 디코딩 및/또는 디지털화함으로써 처리된 기저대역 신호들을 생성하는 RX 처리 회로 (125)로 송신된다. 상기 RX 처리 회로(125)는 상기 처리된 기저대역 신호를 스피커(130)(예: 음성 데이터용)로 또는 추가 처리(예: 웹 브라우징 데이터, 온라인 게임플레이 데이터, 통지 데이터 또는 다른 메시지 데이터용)를 위해 메인 프로세서(140)로 전송한다. 또한, 통신 유닛(110)은 네트워크 카드와 같은 네트워크 인터페이스 또는 소프트웨어를 통해 구현되는 네트워크 인터페이스를 포함할 수 있다.
상기 TX 처리 회로 (115)는 마이크로폰 (120)으로부터의 아날로그 또는 디지털 음성 데이터 또는 메인 프로세서 (140)로부터의 다른 아웃고잉 (웹 데이터, 이메일 또는 대화형 비디오 게임 데이터와 같은) 기저대역 데이터를 수신한다. 상기 TX 처리 회로(115)는 처리된 기저대역 또는 IF 신호를 생성하기 위해 상기 아웃고잉 기저대역 데이터를 인코딩, 다중화 또는 디지털화한다. 상기 통신 유닛(110)은 TX 처리 회로(115)로부터의 처리된 아웃고잉 기저대역 또는 IF 신호를 수신하고, 전송을 위해 상기 기저대역 또는 IF 신호를 RF 신호로 상향 변환한다.
상기 메인 프로세서(140)는 하나 이상의 프로세서 또는 다른 처리 디바이스들을 포함할 수 있으며, 상기 디바이스(100)의 전반적인 동작을 제어하기 위해 메모리(160)에 저장된 OS 프로그램(161)을 실행할 수 있다. 예를 들어, 상기 메인 프로세서(140)는 잘 알려진 원리에 따라 통신 유닛(110), RX 처리 회로(125), 및 TX 처리 회로(115)에 의한 순방향 채널 신호의 수신 및 역방향 채널 신호의 전송을 제어할 수 있다. 일부 실시예들에서, 상기 메인 프로세서 (140)는 적어도 하나의 마이크로프로세서 또는 마이크로제어기를 포함한다. 특정 실시예에 따르면, 메인 프로세서(140)는 배터리(199)의 소모를 최소화하거나 디바이스(100)에서 열 축적을 최소화하기 위한 제어 로직을 포함하는 프로세서와 같은 저전력 프로세서이다.
상기 메인 프로세서(140)는 메모리(160)에 상주하는 다른 프로세스 및 프로그램을 또한 실행할 수 있다. 상기 메인 프로세서(140)는 실행 프로세스의 요구에 따라 메모리(160) 내부 또는 외부로 데이터를 이동할 수 있다. 일부 실시예에서, 상기 메인 프로세서(140)는 OS 프로그램(161)에 기초하여 또는 사용자나 애플리케이션(162)으로부터의 입력에 응답하여 애플리케이션(162)을 실행하도록 구성된다. 애플리케이션(162)은 디바이스(100)의 플랫폼을 위해 특별히 개발된 애플리케이션, 또는 이전 플랫폼을 위해 개발된 레거시 애플리케이션을 포함할 수 있다. 상기 메인 프로세서(140)는 또한 I/O 인터페이스(145)에 연결되어, 상기 디바이스(100)에게 랩탑 컴퓨터 및 핸드헬드 컴퓨터와 같은 다른 디바이스에 접속하는 능력을 제공한다. 상기 I/O 인터페이스(145)는 이러한 액세서리들과 메인 프로세서(140) 사이의 통신 경로이다.
상기 메인 프로세서(140)는 또한 입력/출력 디바이스(들)(150)에 연결된다. 상기 디바이스(100)의 조작자는 입력/출력 디바이스(들)(150)를 사용하여 상기 디바이스(100)에 데이터를 입력할 수 있다. 입력/출력 디바이스(들)(150)는 키보드, 터치 스크린, 마우스(들), 트랙 볼 또는 사용자가 디바이스100)와 상호작용할 수 있도록 하는 사용자 인터페이스로서 행동할 수 있는 다른 디바이스들을 포함할 수 있다. 일부 실시예에서, 입력/출력 디바이스(들)(150)는 터치 패널, 증강 또는 가상 현실 헤드셋, (디지털) 펜 센서, 키, 또는 초음파 입력 디바이스를 포함할 수 있다.
입력/출력 디바이스(들)(150)는 액정 디스플레이, 발광 다이오드(LED) 디스플레이, 광학 LED(OLED), 능동 매트릭스 OLED(AMOLED), 또는 그래픽을 렌더링할 수 있는 다른 스크린일 수 있는 하나 이상의 스크린을 포함할 수 있다. 상기 메모리(160)는 메인 프로세서(140)와 연결된다. 특정 실시예에 따르면, 상기 메모리(160)의 일부는 RAM(random access memory)을 포함하고, 상기 메모리(160)의 다른 일부는 플래시 메모리 또는 다른 ROM(read-only memory)을 포함한다. 비록 도 1이 디바이스(100)의 일 예를 도시하지만, 다양한 변경이 도 1에 만들어질 수 있다.
예를 들어, 특정 실시예에 따르면, 디바이스(100)는 별도의 GPU(Graphics Processing Unit)(170)를 더 포함할 수 있다. 특정 실시예에 따르면, 장치(100)는 허용된다면 애플리케이션(162)에 의해 액세스될 수 있는 다양한 추가 자원들(180)을 포함한다. 특정 실시예에 따르면, 상기 추가 자원들(180)은 가속도계 또는 관성 측정 유닛 (inertial measurement unit, IMU)(182)을 포함하며, 이는 하나 이상의 자유도를 따른 전자 디바이스의 움직임을 검출할 수 있다. 추가 자원들(180)은 일부 실시예에서 디바이스(100)의 하나 이상의 동적 비전 센서(184), 및 하나 이상의 카메라(186)(예를 들어, CMOS(Complementary Metal Oxide Semiconductor) 센서 유형 카메라)를 포함한다. 다양한 실시예에 따르면, DVS 센서(들)(184)는 관심 대상인 심도에 걸쳐 깊이를 추정하기 위해 입체적으로 적절한 거리에 이격된 한 쌍의 동적 비전 센서들을 포함한다. 일부 실시예에 따르면 DVS 센서(들)(184)는 중첩되거나 부분적으로 중첩되는 시야를 갖는 복수의 DVS 센서들을 포함한다.
다양한 실시예에 따르면, 디바이스(100)의 전술한 컴포넌트들은 배터리(199)(예를 들어, 재충전 가능한 리튬 이온 배터리)에 의해 전력을 공급받고, 배터리의 크기, 충전 용량 및 부하 용량은 일부 실시예에서 상기 디바이스의 사용자 요구 및 폼 팩터에 의해 제한된다. 비제한적인 예로서, 디바이스(100)가 스마트폰인 실시예에서, 배터리(199)는 스마트폰의 하우징 내에 맞도록 구성되며 그리고 (예를 들어, 지속된 기간 동안 그래픽 처리 유닛을 최대 전력에서 동작시킴으로써) 열 축적을 초래하는 현재 부하를 지원하지 않도록 구성된다. 추가 예로서, 장치(100)가 헤드 마운트 디바이스인 실시예에서 배터리(199)의 크기(및 함축적으로는 충전 용량)는 사용자의 목 부담을 줄이고 쉽게 머리를 움직일 수 있게 하기 장치(100)를 가능한 한 가볍게 유지해야 할 필요성에 의해 제한될 수 있다.
비록 도 1은 증강 또는 확장된 현실 경험을 제공하기 위한 디바이스(100)의 일 예를 도시하지만, 도 1에 다양한 변경이 이루어질 수 있다. 예를 들어, 상기 디바이스(100)는 임의의 적절한 배열로 임의의 개수의 컴포넌트들을 포함할 수 있다. 일반적으로, 컴퓨팅 및 통신 시스템을 포함하는 디바이스들은 매우 다양한 구성으로 제공되며, 도 1은 본 개시의 범위를 어떤 특정 구성으로 제한하지 않는다. 도 1은 본 특허 문서에 개시된 다양한 특징들이 사용될 수 있는 하나의 운영 환경을 도시하지만, 이러한 특징들은 어떤 다른 적절한 시스템에서 사용될 수 있다.
도 2는 본 개시의 하나 이상의 실시예에 따른 XR 장치(200)의 예를 도시한다.
일부 실시예에 따르면, XR 장치(200)는 다른 디바이스(예를 들어, 스마트폰)에 대한 액세서리 디바이스로서 동작할 수 있고, 이는, XR 장치(200)를 통해 제공되는 XR 경험의 일부로서 제공될 디지털 객체들의 렌더링을 생성하고 기여하는 호스트 시스템(예를 들어, 도 1에서의 디바이스(100))에 대한 클라이언트 디바이스로서 동작한다. 일부 실시예에서, XR 장치(200)는 헤드 마운트 디스플레이(HMD) 또는 한 쌍의 스마트 안경을 포함한다. 설명의 편의상, XR 장치(200)라고 기재하여 설명하나, 본 발명의 XR 장치(200)는 가상 현실(virtual reality, VR), 혼합 현실(mixed reality, MR), 및 증강 현실(augmented reality, AR) 중 적어도 하나의 디지털 경험을 제공할 수 있는 장치에 해당할 수 있고, 가상 현실 장치, 혼합 현실 장치, 증강 현실 장치 각각에 해당할 수 있으나, 이와 같은 명칭에 한정되는 것은 아니다.
도 2의 비제한적인 예를 참조하면, XR 장치(200)는 외부 지향 카메라(205)를 포함한다. 이 비제한적인 예를 설명하기 위해 화살표(201)가 제공된다. 화살표(201)는 XR 장치(200)의 내부 대면 디스플레이의 투영 방향에서 멀어지는 시야를 향해 외부를 가리킨다. 다양한 실시예에 따르면, 외부 지향 카메라(205)는 RGB 디지털 비디오 카메라(예를 들어, CMOS 센서를 사용하는 카메라)이다. 일부 실시예에 따르면, 외부 지향 카메라(205)는 인간 눈의 가시 범위 밖의 파장(예를 들어, 적외선)에서 광을 검출할 수 있는 카메라이다. 특정 실시예에서, 외부 지향 카메라(205)는 동적 비전 센서(dynamic vision sensor, DVS)이며, 이는 DVS의 센서의 픽셀들에서 수신된 광의 강도 변화의 이벤트 스트림을 제공한다. 이 비제한적인 예에서, 외부 지향 카메라(205)는 이벤트 스트림으로서 또는 이산 이미지 프레임들로서 이미지 데이터를 생성하며, 이로부터 외부 지향 카메라(205)의 시야 내 물리적 세계의 슬라이스 내의 평면들은 XR 경험에서 디지털 객체들을 배치하기 위한 사이트들로서 하나 이상의 XR 애플리케이션들에 의해 인식되어 사용될 수 있다.
도 2의 비제한적인 예를 참조하면. XR 장치(200)는 디스플레이(207)를 포함한다. 다양한 실시예에 따르면, 디스플레이(207)는 외부를 향하는 시야 내 객체들의 뷰와 함께 XR 콘텐츠의 항목들을 내부를 향하는 방향으로 (예를 들어, 화살표(201)에 반대인 컴포넌트를 갖는 방향으로) 디스플레이한다. 일부 실시예에 따르면, 디스플레이(207)는 실질적으로 투명하며 (예를 들어, "스마트 안경" 또는 비행기 조종석 유리상의 "헤드업 디스플레이"에서 사용되는 디스플레이와 유사함) 그리고 외부로 향하는 시야 내 객체들의 뷰들은 디스플레이 (207)를 통과하는 빛에서 나온다. 다양한 실시예에 따르면, (때때로 "혼합 현실"로 지칭됨) 디스플레이(207)는 불투명하고, 외부를 향한 시야 내 객체들의 뷰는 외부 지향 카메라(예를 들어, 외부 지향 카메라(205))로부터의 이미지 데이터로부터 나온다.
다양한 실시예에 따르면, XR 장치(200)는 제2 카메라(209)를 포함한다. 일부 실시예에서, 제2 카메라(209)는 외부 지향 카메라(205)와 동일한 유형의 외부 지향 카메라이고, 이에 의해 깊이 추정을 포함하는 이미지 데이터를 생성할 수 있는 입체 쌍을 형성한다. 특정 실시예에서, 제2 카메라(209)는 외부 지향 카메라(205)와 다른 센서 유형을 갖는 외부 지향 카메라이다. 예를 들어, 일부 실시예에서, 배터리 수명을 연장하고 프로세서 사용을 최소화하기 위해서, 외부 지향 카메라(205)는 DVS 센서이고 제2 카메라(209)는 DVS 센서보다 덜 효율적이지만 객체 인식에 유용한 추가 이미지 데이터 (예를 들면, DVS 센서가 검출할 수 있는 레벨에서 밝기가 변하지 않을 수 있는 장면의 색상들 및 요소들에 대한 데이터)를 제공할 수 있는 CMOS 유형 카메라이다. 다양한 실시예에 따르면, 제2 카메라(209)는 사용자의 눈의 움직임 및 암묵적으로는 사용자의 시선의 방향을 추적하는 내부로 향하는 카메라이다. 시선 추적은 사용자가 실제로 보고 있는 시야의 부분들을 식별하기 위해 사용될 수 있으며, 그에 의해 XR 콘텐츠 배치를 지원하고 XR 콘텐츠의 아이템들을 낮은 해상도에서 관찰자의 시선으로부터 멀리 렌더링하여 처리 및 배터리 자원이 보존될 수 있는 위치에 대한 지침을 제공한다.
특정 실시예에 따르면, XR 장치(200)는 프로세서(211) 및 메모리(213)를 포함한다. 특정 실시예에서, 메모리(213)는, 프로세서(211)에 의해 실행될 때에 XR 장치(200)로 하여금 AR 애플리케이션 또는 AR 애플리케이션의 계산 컴포넌트 (예를 들어, 시야 내의 평면 검출)를 실행하게 하는 프로그램 코드를 포함한다.
도 2의 비제한적인 예를 참조하면. XR 장치(200)는 하나 이상의 자유도를 따라 XR 장치(200)의 움직임과 연관된 로케이션 데이터를 생성하는 관성 측정 유닛(215)을 포함한다. 특정 실시예에서, IMU(215)로부터 출력된 데이터는 (예를 들어, XR 장치(200)의 지리 공간적 위치를 확인하기 위한) 포지셔닝을 위해 또는 객체 인식을 용이하게 하기 위해서 이미지 안정화 데이터(예를 들어, 카메라 흔들림의 방향 및 주기성을 표시하는 데이터)를 획득하기 위해 사용될 수 있다.
일부 실시예에서, XR 장치(200)는 입력/출력 인터페이스(217)를 포함한다. 다양한 실시예에 따르면, I/O 인터페이스(217)는 XR 장치(200) 그리고 XR 장치(200)가 액세서리 장치인 스마트폰 또는 컴퓨터와 같은 적어도 하나의 다른 전자 디바이스 사이의 통신 접속을 제공한다. I/O 인터페이스(217)는 특정 실시예에서 블루투스 트랜시버와 같은 무선 통신 인터페이스이거나, 또는 하나 이상의 장거리 무선 시스템(예를 들어, 도 1의 통신 유닛(110))을 통한 통신을 지원하는 통신 하드웨어이다. 한편, 도 2의 예에서, 깊이 데이터는 제1 카메라(205)와 제2 카메라(209) 사이의 시차 변화를 통해 입체적으로 획득되지만, 다른 실시예들이 가능하며 본 개시의 고려된 범위 내에 있는 것이다. 예를 들어, 깊이 데이터는 XR 장치(200)에 통합된 LIDAR(Light Detection and Ranging) 스캐너를 사용하여 획득될 수 있다. 일부 실시예에서, LIDAR 스캐너는 시야를 가로질러 광 포인트들(전형적으로, 적외선 스펙트럼 내 포인트들)의 알려진 패턴을 투영하고 그 투영된 포인트들을 볼 수 있는 표면들을 식별하기 위해 상기 시야를 스캔한다. 시야 전반에 걸쳐 상기 패턴의 투영을 변조하거나 시프트하고 점들이 보이는 변화들을 모니터링함으로써, 깊이 데이터 포인트들의 포인트 클라우드가 획득될 수 있다. 특정 실시예에서, 비행 시간(Time of Flight, "ToF") 센서와 같은 다른 센서를 사용하여 깊이 데이터를 얻을 수 있다.
도 3a 및 도 3b는 본 개시의 다양한 실시예에 따른 헤드 마운트 장치(예를 들어, 도 2에서의 XR 장치(200))에서 XR 경험을 제공하기 위한 평면 검출 및 공간 추정의 역할의 모습들을 도시한다. 편의상 도 3a 및 도 3b에 공통된 요소들을 상호 참조한다.
도 3a에 도시된 예에서. XR 플랫폼(305)을 위한 운영 환경(300)이 도면의 상부 절반에 도시된다. 특정 실시예에 따르면, XR 플랫폼(305)은 한 쌍의 선글라스와 같이 사용자(301)의 머리에 착용되는 테더링되지 않은 헤드 마운트 디스플레이(예를 들어, 도 1의 디바이스(100))를 포함한다. 일부 실시예에서, 저전력 XR 플랫폼(305)은 사용자(301)가 운영 환경(300)에서 객체들을 볼 수 있는 투명 렌즈(307)를 포함하고, 이를 통해 저전력 XR 플랫폼(305)이 XR 객체 또는 시각적 자산들을 사용자(301)의 시야로 투영하여 확장된 현실(extended reality, "XR") 경험을 제공할 수 있다. 본 개시에서 사용된 바와 같이, "XR 경험"이라는 용어는 운영 환경의 관점뿐만 아니라 시각적 자산 또는 운영 환경 내에서 물리적 객체들의 외양을 갖도록 렌더링되고 실제 물리적 객체들처럼 다른 관점에서 볼 때 다르게 보이는 XR 객체를 포함한다. 본 개시에서 사용된 바와 같이, 표현 "XR"은 원근 의존적 외양을 갖는 물리적 객체와 같은 디지털 객체들을 통합한 다양한 디지털 경험을 망라한다. 본 명세서에 사용된 바와 같이, "XR"이라는 표현은 가상 현실 (virtual reality, VR), 혼합 현실(mixed reality, MR) 및 증강 현실(augmented reality, AR) 디지털 경험들을 제한 없이 망라한다.
이 예에서 XR 플랫폼(305)은 사용자의 머리에 착용하는 배터리로 전력을 공급받는 장치이며, 그래서 휴대용이거나 또는 외부 파워 서플라이 (예: 건물의 교류 전류 콘센트)로부터 전력을 공급받는 컴퓨팅 플랫폼들에게 적용하는 것을 넘어선 작동 제약들을 받기 쉽다. XR 플랫폼(305)에 특히 적용할 수 있는 작동 제약들의 예들은 무게, 암시적으로는 배터리 용량(대부분의 사용자들이 더 큰 배터리를 가진 더 무거운 장치를 착용하지 않는 것을 선호하기 때문임), 프로세서 소비 및 열 축적 (착용된 디바이스로서, 프로세서를 혹독하게 실행하여 열이 축적되는 것은 특히 바람직하지 않음), 그리고 XR 디스플레이의 물리적 객체들에 대한 디지털 객체들의 정확한 배치(디지털 객체들의 부정확하거나 불안정한 배치는 XR 경험을 저하시키고 멀미를 유발할 수 있음)를 포함한다.
많은 XR 응용 프로그램에서, XR 디스플레이 내에서 디지털 객체를 배치하기에 적합한 로케이션들로서 운영 환경 내의 평면 표면들을 식별하는 것은 XR 디스플레이 생성의 필수적인 부분이다. 이는 많은 경우에 디지털 객체들과 물리적 객체들이 서로에게 설득력 있게 상호 작용하고 물리적 제약들의 공통 세트를 (적어도 부분적으로) 따르는 것으로 보이는 정도 때문이다. 예를 들어, 많은 애플리케이션들에서, 수평 표면(예를 덜어, 테이블 윗면)에 놓인 디지털 객체들은 물리적 표면의 평면 내에 위치하여 "떠다니는" 객체들로 보이거나 또는 물리적인 객체의 평면을 넘어서 확장하여 비현실적으로 보이며 XR 디스플레이에서 제공하는 혼합 현실 효과를 손상시키는 객체들로 보일 것으로 예상된다.
이 예시적인 예에서, 운영 환경(300)은, 적어도 3개의 고정된 평면 표면들인 바닥(310), 제1 벽(315) 및 제2 벽(320)을 포함하는 방이며, 이들 각각은 고정 치수들 및 서로에 대한 그리고 레퍼런스 방향 (예: 중력 방향 325)에 대한 공간 관계와 연관된다. XR 플랫폼(305)은 운영 환경(300)의 물리적 표면들에 위치한 것으로 보이는 디지털 객체들을 제시하는 애플리케이션을 실행하고 있다. 이를 위해, XR 플랫폼(305)은 운영 환경(300) 내에서 적절한 평면 표면들을 인식할 필요가 있다. 또한, 이 예에서 XR 플랫폼(305)이 헤드 마운트 장치라는 것이 주어지면, 디지털 객체를 배치하기 위한 운영 환경(300) 내 하나 이상의 적절한 평면들에 대한 효율적인 식별이 가능하다.
이력적으로, XR 애플리케이션을 위한 평면 식별은 초기에 모든 평면들을 식별하고 XR 장치의 전체 시야를 정의한 다음 식별된 평면들의 세트에서 적절한 평면을 선택하여 수행된다. 이러한 접근 방식들에 따르면, 깊이 및 이미지 데이터로부터 평면을 식별하는 계산 비용이 많이 드는 단계는 디지털 객체의 디스플레이 파라미터들 (예: 크기 및 방향) 그리고 상기 디지털 객체가 상호 작용하도록 의도된 물리적 표면들에 대한 고려 없이 수행된다. 이러한 이력적인 접근 방식들은 깊이 및 이미지 데이터를 분석하는 프로세서 및 배터리 자원들을 낭비하여, XR 디스플레이 내에서의 위치 또는 다른 요인들에 의해 디지털 객체를 배치하기에 분명하게 부적합한 평면을 식별할 수 있다.
3a 및 도 3b의 예시적인 예에서 보이는 것처럼, XR 플랫폼(305)에 의해 제공된 디지털 객체는 좌표 지역(330)으로 표현된 풋프린트 또는 특성 치수를 갖는 시계(340)의 그래픽이다. XR 플랫폼(305)의 이미지 및 깊이 센서들의 전체 시야 내의 모든 평면들을 식별하기 위해 깊이 및 이미지 데이터를 처리하는 대신, 본 개시에 따른 특정 실시예들은 디지털 객체들을 배치하기 위한 평면들을 식별하기 위해 이용 가능한 깊이 및 이미지 데이터의 타겟 서브세트만을 처리하며, 그렇게 함으로써 시야 내 그 평면들의 로케이션 또는 다른 속성들에 의해 특정 디지털 객체를 배치하기에 적합한 후보들이 아닌 평면들을 식별하기 위한 불필요한 처리를 줄인다. 그러므로, 도 3a 및 도 3b의 예에서, 상기 디지털 객체가 XR 플랫폼(305)의 착용자에게 시간을 보여주는 벽시계(340)이기 때문에, XR 플랫폼(305)은 착용자가 보고 있지 않거나 시계 (340)의 위치 결정에 적합하지 않은 시야의 일부에서는 평면 인식을 수행하지 않는다. 예를 들어, XR 플랫폼(305) 내 시선 추적 센서들이 사용자(301)가 정면을 바라보고 있음을 나타내는 경우, 천장(327) 및 제1 벽(315)과 같은 XR 플랫폼(305)의 센서 시야의 주변 부분들으로부터의 깊이 및 이미지 데이터는 분석에서 제외될 수 있다. 또한, 장면 내 다른 평면들 (예: 바닥(310))이 시계(340) 위치 결정에 적합하지 않은 것으로 이전에 인식되고 식별된 경우 (즉, 벽시계는 바닥에 가지 않음), 운영 환경(300)의 이전에 그렇게 분석된 지역들로부터의 깊이 및 이미지 데이터는 시계(340) 위치 결정을 위해 적합한 평면을 식별하는 프로세스에서 제외될 수 있다.
도 4a 및 도 4b는 XR 플랫폼(예를 들어, 도 2의 XR 장치(200) 또는 도 3의 XR 플랫폼(305))의 운영 환경의 이미지 및 깊이 데이터 내에서 적절한 XR 목적-특정 평면들을 효율적으로 식별하기 위한 방법의 동작들을 도시한다. 상기 순서도가 일련의 순차적 단계들을 도시하지만, 명시적으로 언급되지 않는 한, 특정 수행 순서, 단계들이나 그 단계들의 일부의 수행이 동시에 또는 중복되는 방식이 아닌 순차적인 수행, 또는 개입 또는 중간 단계들이 발생하지 않고 독점적으로 도시된 단계들 수행에 관련된 시퀀스로부터 어떤 추론도 도출되지 않아야 한다. 특정 실시예에 따르면, 적절한 XR 목적 특정 평면을 식별하기 위한 방법들은 적어도 다음 컴포넌트들을 포함한다: (1) 평면 검출 (도 4a를 참조하여 설명됨); 및 (2) 공간 추정(도 4b를 참조하여 설명됨). 도면 자체에서 보이는 바와 같이, 도 4a에서 보이는 특정 동작들은 도 4b에 보이는 동작들로 또는 그 동작들로부터 진행한다.
도 4a의 비제한적인 예를 참조하면, 동작 401에서, XR 플랫폼의 동작 환경에서 적절한 평면을 검출하기 위한 방법(400)의 새로운 반복이 트리거된다. 일부 실시예에 따르면, 상기 방법(400)의 반복은 XR 애플리케이션 내 프로그램 이벤트 (예를 들어, XR 플랫폼의 운영 환경의 관점에서 평면 상에 배치될 디지털 객체의 렌더링)로 인해 트리거된다. 일부 경우에, 상기 방법(400)의 반복은 디지털 객체의 위치를 정하기 위한 적절한 평면이 이용 가능한 이미지/깊이 데이터의 주어진 서브세트에서 발견되지 않았던 때와 같은 방법(400)의 이전 반복의 프로그램 로직에 의해 트리거된다.
동작 403에서, XR 플랫폼이 제공하는 XR 디스플레이의 시야 내 특정 디지털 객체에 대한 목표 로케이션이 세팅된다. 일부 실시예에서, 타겟 로케이션은 XR 플랫폼의 착용자의 시선 또는 시야 방향을 추적하는 것과 같은 센서 입력에 기초하여 세팅된다. 그러한 실시예에서, 상기 타겟 로케이션은 사용자의 시선이 훈련된 것으로 추적된 시야의 일부에 대응할 수 있다. 일부 실시예에서, 상기 타겟 로케이션은 디지털 객체의 하나 이상의 미리 정의된 속성들에 기초하여 프로그램적으로 세팅된다. 예를 들어, 상기 디지털 객체가 일반적으로 바닥에서 발견되는 어떤 것에 대한 표현인 경우, 상기 타겟 로케이션은 상기 운영 환경에서 바닥의 가능한 로케이션에 대한 예측을 기반으로 한다. 또한, 일부 실시예에서, 타겟 로케이션은 특정 사용자 입력(예를 들어, 시야의 일부를 향해 가리키는 사용자의 손 추적)에 기초하여 결정될 수 있다. 일부 실시예에서, 타겟 로케이션은 인공 지능(AI) 예측 또는 다른 데이터-트레이닝된 기계 모델에 기초하여 세팅될 수 있다. 시야의 일부를 타겟 로케이션으로 세팅하기 위한 다른 메커니즘이 사용되는 다른 실시예가 가능하고 본 개시의 고려된 범위 내에 존재한다.
동작 405에서, 포인트 클라우드 데이터가 획득되고, 여기에서 상기 포인트 클라우드 데이터는 복수의 데이터 포인트들을 포함하고, 여기에서 각 데이터 포인트는 XR 플랫폼의 시야 내 좌표를 상기 운영 환경 내 표면의 측정된 깊이 값과 연관시킨다. 일부 실시예에 따르면, 상기 포인트 클라우드는, 출력들이 시각적 동시 로케이션 및 매핑 (visual simultaneous location and mapping, v-SLAM) 파이프라인으로 피딩되는 시각적 조합을 사용하여 생성된다. 일부 실시예에서, 상기 깊이 데이터는 LIDAR 스캐너 또는 비행 시간 (time-of-flight) 센서를 사용하여 획득된다.
동작 407에서, XR 플랫폼의 시야에 대한 이미지 데이터(예를 들어, CMOS 이미지 센서의 출력)가 획득된다. 특정 실시예에 따르면, 상기 이미지 데이터는 좌표 로케이션(예를 들어, 개별 픽셀들)을 색 공간 내 값들과 연관시킨다. 상기 포인트 클라우드 데이터와 상기 이미지 데이터를 제공하는 센서(들)의 시야가 완벽하게 동일할 필요는 없지만, 많은 실시예에서, 상기 포인트 클라우드 데이터를 제공하는 센서(들) 및 상기 이미지 데이터를 제공하는 센서(들)의 시야 내에 있는 장면의 부분들 (XR 장치가 훈련받는 운영 환경의 일부)에서 많이 중첩된다. 또한, 많은 실시예들에서, 동작 403에서 세팅된 타겟 로케이션은 수집된 포인트 클라우드 데이터와 이미지 데이터 사이의 중첩 지역 내에 위치한다.
도 4a의 비제한적인 예를 참조하면, 특정 실시예에서, XR은 인공 지능(AI)을 사용하거나 그렇지 않으면 데이터-트레이닝 모델을 적용하여, 이미지 데이터 및 깊이 데이터를 제공하는 센서들의 공유 시야 내에 어떤 인식 가능한 객체들이 있는지를 판단한다. 일부 실시예에서, 상기 XR 플랫폼은 이진 강건 불변 스케일러블 키포인트 (binary robust invariant scalable keypoint, "BRISK") 알고리즘을 사용하여 검출된 특징들에 기초하여 객체 인식을 수행한다. 계산 효율적인 방식으로 이미지 및/또는 깊이 데이터 내의 객체들을 인식하는 데 상당한 발전이 있음을 감안할 때, 디지털 위치 지정을 위해 절대적으로 부적합한 이미지 및 깊이 센서의 공유 시야 내에서 평면 검출을 위한 후보 지역들이 식별되며 그리고 추가 분석에서 제외될 수 있다. 예시적인 예로서, 도 3a에서 보이는 표면에 추가로, 운영 환경(300)이 벽 근처에 서 있는 사람을 추가로 포함하는 경우를 고려한다. 벽시계는 사람이 아니라 벽에 장착되기 때문에, 사람을 인식함으로써, 시계(340)의 위치 결정 후보로 사람을 포함하는 시야 영역이 배제될 수 있다.
동작 411에서, 상기 XR 플랫폼은, 이전 타겟 로케이션, 포인트 클라우드 데이터 및 이미지 데이터 그리고 적용 가능한 경우에는 동작 409에서의 객체들 식별을 기반으로 평면 검출 영역을 한정한다. 특정 실시예에 따르면, 상기 평면 검출 영역은 장면 데이터의 공간적으로 정의된 서브세트를 포함한다. 상기 장면 데이터의 공간적으로 정의된 서브세트의 예시적인 예로서, 이미지 및 깊이 센서들의 공유 시야는 사분면들으로 분할될 수 있으며, 그 중 하나의 사분면이 상기 평면 검출 영역으로 선택된다. 일부 실시예에서, 이미지 및 깊이 센서의 공통 시야 내의 미리 결정된 지역으로부터 선택하는 것에 대한 대안으로서, 상기 평면 검출 영역의 크기 및 로케이션을 예를 들어 상기 타겟 로케이션을 하나 이상의 미리 정의된 제약들을 충족하는 영역의 센터 또는 중심으로서 세팅함으로써 프로그래밍 방식으로 결정될 수 있다. 타겟 포인트를 둘러싸는 평면 검출 영역의 크기를 한정하는 제약둘의 비제한적인 예로서, 평면 검출 영역의 치수(예를 들어, 폭 또는 높이)는 아래의 수학식 1에 의해 주어질 수 있다:
여기에서 Lpd는 주어진 축(예: x 또는 y 축)을 따른 평면 검출 영역의 치수이며, 이미지 및 깊이 센서들의 공유 시야의 치수들의 일부로서 표현된다. Ldo는 주어진 축을 따라 평면 검출 영역 내 평면에 배치될 디지털 객체의 치수이며, 그리고 Dpc는 타겟 로케이션 주변 영역 내 포인트 클라우드 데이터 밀도를 정량화한 것이다. 위와 같이, 디지털 객체가 작고 함축적으로는 Ldo의 값이 작은 경우, 상기 평면 검출 영역의 크기가 줄어든다. 마찬가지로, 디지털 객체가 큰 경우, 객체가 클수록 더 큰 평면들이 배치될 것을 필요로 하므로, 평면 검출 영역의 크기는 증가한다. 또한, 앞서 나타낸 바와 같이, 깊이 데이터가 풍부한 경우 (즉, 깊이 데이터의 밀집 포인트 클라우드)에서는 평면 검출 영역의 크기가 감소된다. 마찬가지로, 깊이 데이터가 희박한 경우에는, 평면 검출 영역의 크기가 증가한다.
평면 검출 영역을 정의한 XR 플랫폼은 동작 411에서, 평면 검출 영역 내 세팅된 포인트도 수집한다. 일부 실시예에 따르면, 수집된 포인트 세트는 검출 영역 내에서 선택된 포인트 클라우드 중 3개 이상의 포인트를 포함한다.
413 동작에서, 상기 XR 플랫폼은 동작 411에서 수집된 포인트 세트를 기반으로 초기 평면 모델을 정의한다. 특정 실시예에서, 상기 평면 모델은 평면의 벡터 표현이며, 여기에서 벡터의 원점은 상기 평면 내 한 포인트를 포함하고 상기 벡터는 상기 평면에 대한 법선을 정의한다. 특정 실시예에 따르면, 동작 413에서 평면 모델을 정의하는 것은 평면 가설이고, 평면 검출 영역에서 가장 이용 가능한 평면을 식별하는 랜덤 샘플 합의(random sample consensus , "RANSAC") 프로세스의 반복의 첫 번째 단계를 구성한다. RANSAC은 잡음이 있거나 잠재적으로 잡음이 있는 데이터 세트들로부터 평면을 정의하는 효과적인 방법인 것으로 드러내진다.
동작 415에서, 상기 XR 플랫폼은 평면 검출 영역 내의 포인트들을 랜덤으로 선택하고, 랜덤으로 선택된 포인트들로 평면 모델을 피팅하고, 상기 랜덤으로 선택된 포인트들로 피팅된 평면에 대해 동작 413에서 정의된 가설 (hypothesis) 평면 모델을 테스트한다. 블록 417에서, 상기 XR 플랫폼은 동작 413에서 정의된 가설 평면 모델이 동작 415에서 생성된 평면보다 더 양호한지 여부를 판단한다. 동작 415에서 랜덤 포인트들에 기초하여 생성된 평면이 동작 413에서 생성된 가설 평면보다 양호하지 않은 경우(즉, 블록 417의 "NO" 분기), 방법(400)은 동작 415로 루프백하여 더 나은 평면이 상기 평면 검출 영역 내 랜덤으로 선택된 다른 포인트들로부터 획득될 수 있는지의 여부를 판단한다. 동작 415에서 랜덤으로 선택된 포인트들에 기초하여 생성된 평면이 동작 413에서 정의된 가설 평면보다 더 양호한 경우 (즉, 블록(417)의 "YES" 분기), 방법(400)은 동작 419로 진행하고, 여기에서, 동작에서 생성된 평면이 작업 413에서 가설 평면으로 정의된 평면 모델을 대체한다.
동작 419에 이어서, 방법(400)은 블록(421)으로 진행하고, 여기에서 상기 XR 플랫폼은 현재 가설 평면이 최상의 이용 가능한 평면을 구성하는지 여부를 판단한다. 특정 실시예에 따르면, 현재의 가설 평면이 다음 요소들 중 하나 이상에 기초하는지 여부가 결정된다: 동작 413 내지 419의 이전 반복들의 횟수, 평면 식별을 위한 처리 시간에 대한 시간 제한(즉, 까다로운 평면 식별 시나리오로 인한 XR 디스플레이의 프레임 속도 저하를 피하기 위해) 또는 임계값을 초과하는 현재 가설 평면 간의 적합도 (fit) 정량화.
블록 421에서, 최상의 결과에 대한 기준이 만족되었다고 상기 XR 플랫폼이 판단하면 (즉, 블록(421)의 "YES" 분기), 방법(400)은 평면 검출에 대한 동작을 수행하는 것 (즉, 상기 깊이 및 이미지 데이터에 의해 기록된 것과 같은 운영 환경 내 평면을 정확하게 식별하는 것)으로부터, 작업 423으로 시작하는 도 4b를 참조하여 설명된 것과 같은, 공간 추정에 관한 작업들 (즉, 검출된 평면이 디지털 객체를 배치하기에 충분한 크기인지 여부를 판단하는 것)로 진행한다.
블록 421에서, 상기 XR 플랫폼이 최상의 평면에 대한 기준이 충족되지 않았다고 판단하면, 방법(400)은 새로운 가설 평면 모델이 정의되는 곳인 동작 413으로 거꾸로 루프한다.
앞서 언급했듯이, 평면을 결정하기 위한 RANSAC 방법론은 잡음이 많은 데이터 세트에 특히 적합하다. 그러나, 상기 깊이 데이터가 희소 및/또는 잡음이 있는 어느 하나의 경우, 최상의 결과에 해당하는 평면이 획득되기 이전에 413 내지 421 동작들이 여러 번 반복될 것이 필요할 수 있다. 최상의 평면에 대한 반복 검색이 수행되는 데이터 세트를 포인트 클라우드의 공간적으로 제한된 서브세트로만 제한함으로써, 본 개시에 따른 특정 실시예는 예를 들어, 디지털 객체를 배치하기 위해 일반적으로 적합하지 않은 포인트 클라우드 내의 로케이션들로부터의 광범위한 평면 검출 사이클들을 방지한다.
도 4b의 비제한적인 예를 참조하면, (도 4a를 참조하여 보이는) 평면 검출 부분의 완료 시, 방법(400)은 공간 추정으로 진행하고, 여기에서 상기 XR은 상기 검출된 평면이 디지털 객체를 정확하게 배치하기 위해 충분히 멀리 확장되는지 여부를 판단한다. 본 개시의 다른 곳에서 언급된 바와 같이, XR 플랫폼의 성능의 종종 중요한 차원은 디지털 객체들이 상기 운영 환경에서 물리적 객체들의 공간 및 물리적 제약들 (예: 중력)에 의해 구속되는 것으로 보이는가 (또는 보일 수 있는가)의 범위이다. 많은 애플리케이션들에서, (예를 들어, 지지 표면의 평면을 훨씬 넘어 확장하거나 지지 표면에서 객체를 "삼키는" 것처럼 보임으로써) 그런 물리적 제약들을 임의로 무시하는 것처럼 보이는 방식으로 디지털 객체들을 배치하는 것은 부자연스럽게 보이며 XR 경험을 손상시킨다.
다양한 실시예에 따르면, 동작 423에서, 상기 XR 플랫폼은 평면을 검출하는데 사용된 포인트 클라우드 데이터 포인트들에 기초하여 평면의 현재 알려진 치수들을 계산함으로써 공간 추정을 수행하는 프로세스를 시작한다. 계산 효율성을 위해, 동작 423에서 계산된 평면의 현재 알려진 치수들은 일반적으로 평면의 경계들과 같은 공간에 있지 않는다. 오히려, 평면의 현재 알려진 치수들은 평면이 결정되었던 포인트 클라우드의 데이터 포인트들의 공간 분포에 의해 결정된다. 이러한 방식에서, 본 개시에 따른 특정 실시예들은 디지털 객체들 정확하게 배치하는 제한된 목적을 위해 필요한 만큼만 장면 데이터(또는 상기 운영 환경의 깊이 및 이미지 영역)를 분석하기 위해 노력하며, 이에 의해 식별가능하게 불필요한 데이터를 처리하는 낭비되는 처리 사이클을 방지한다.
도 4b의 예시적인 예에 보이는 바와 같이, 동작 425에서, 상기 XR 플랫폼은 평면의 계산된 크기를 상기 디지털 객체의 요구되는 크기와 비교한다. 일부 실시예에 따르면, 동작 425에서, 상기 XR 플랫폼은 상기 평면의 사용 가능한 크기 (예를 들어, 상기 평면의 가장 짧은 대각선)의 적어도 하나의 값을 상기 디지털 객체의 특성 크기 (예를 들어 지름 또는 가장 긴 대각선)의 적어도 하나의 값과 비교하여, 상기 계산된 평면의 크기를 상기 디지털 객체의 크기와 비교한다. 상기 평면과 디지털 객체의 특성 치수들을 신중하게 선택하여 상기 평면이나 객체의 정확한 영역을 계산하기 위한 불필요한 처리를 피할 수 있으며, 그럼으로써 처리 속도가 향상되고 배터리 자원이 절약된다.
블록 427에서, 상기 XR 플랫폼은 상기 평면의 계산된 크기가 디지털 객체의 요구되는 크기보다 큰지의 여부에 대한 결정에 따라 진행한다. 상기 평면의 계산된 크기가 디지털 객체의 요구된 크기 이상인 것으로 결정될 때에 (즉, 블록 427의 "YES" 분기), 방법(400)은 동작 499로 진행하며, 여기에서 평면 검출 및 공간 추정 작업들의 결과는 XR 플랫폼에서 실행되는 하나 이상의 애플리케이션으로 출력된다. 특정 실시예에 따르면, 평면 검출 및 공간 추정의 결과는 XR 애플리케이션에 벡터 포맷으로 출력되며, 이는 상기 디지털 객체가 상기 검출된 평면 상에 배치된 XR 디스플레이를 렌더링한다.
도 4b의 예시적인 예에서 보이는 바와 같이, 상기 평면의 계산된 크기가 상기 디지털 객체의 요구된 크기보다 작은 것으로 결정될 때에 (즉, 블록 427의 "NO" 분기), 방법(400)은 블록 431로 진행하고, 여기에서 상기 XR 플랫폼은 동작 411에서 정의된 평면 검출 영역 내에 추가적인 포인트 클라우드 데이터 포인트들이 존재하는지의 여부를 결정한다. 다시 말해서, 현재 정의된 평면이 디지털 객체를 정확하게 배치하기에 충분히 크지 않다는 판단에 응답하여, 본 개시에 따른 특정 실시예들은 상기 평면의 알려진 크기의 증가를 지원하기 위해 추가적인 데이터 포인트들을 찾는다.
현재 평면 검출 영역에 더 많은 깊이 클라우드 데이터 포인트들이 존재하는 경우 (즉, 블록 431의 "YES" 분기), 방법(400)은 동작 433으로 진행하며, 여기에서 상기 XR 플랫폼은 현재 평면에 인접한 포인트 클라우드 데이터 포인트들 획득하고 추가적인 포인트 클라우드 데이터 포인트들이 상기 검출된 평면에 맞는지의 여부를 알기 위해 테스트한다. 상기 평면 내에 추가 포인트 클라우드 데이터 포인트들이 존재하는 경우, 상기 검출된 평면은 추가 포인트 클라우드 포인트를 포함하도록 확장되며, 그리고 방법(400)은 동작 (423으로 루프백한다. 특정 실시예에서, 상기 검출된 평면이 디지털 객체를 수용하기에 충분히 큰 지점까지 확장되기 이전에 동작들 423 내지 433의 다중 반복들이 필요할 수 있다.
현재 평면 검출 영역에 더 이상 깊이 클라우드 데이터 포인트들이 존재하지 않는 경우 (즉, 블록 431의 "NO" 분기), 방법(400)은 동작 435로 진행하여, 여기에서 방법(400)은 새로운 평면 검출 영역에서 재시작된다.
도 5a 내지 도 5e는 본 개시의 특정 실시예에 따른 평면 검출 및 공간 추정의 모습들의 시각화를 제공한다. 도 5a 내지 도 5e에서 보이는 실시예들은 단지 예시를 위한 것이며 다른 실시예들은 본 개시의 범위를 벗어나지 않으면서 사용될 수 있다. 상호 참조의 편의상, 도 5a 내지 도 5e 중 하나 이상에 공통인 요소들은 유사하게 번호가 매겨진다.
도 5a의 비제한적인 예를 참조하면, XR 플랫폼 (예를 들어, 도 1 내 디바이스(100), 도 2 내 XR 장치(200), 또는 도 3a 내 XR 플랫폼(305))의 운영 환경의 일부를 포함하는 장면(500)이 상기 도면에서 보인다. 본 개시에서 사용된 바와 같이, 표현 "장면 (scene)"은 상기 XR 플랫폼의 하나 이상의 이미지 센서들 및 하나 이상의 깊이 센서들의 공유된 시야 내의 동작 환경의 일부를 포함한다. 더 간단히 말해서, 본 명세서에서 사용되는 바와 같이, "장면"이라는 용어는 본 개시의 장치 및 방법에 따라 결정된 평면들 상에 디지털 객체들이 배치될 수 있는 환경의 일부의 뷰를 포함한다.
도 5a 내지 도 5e의 예시적인 예에서, 상기 XR 플랫폼은 장면(500) 내에서 작은 용기(예를 들어, 커피 컵)의 표현을 포함하는 디지털 객체를 배치하기 위한 평면 표면을 찾으려고 한다. 두뇌들이 눈들로부터의 이미지 정보와 인식된 객체들의 3차원 속성들 사이의 지속적인 의미론적 연결을 쉽게 형성할 수 있는 인간들과 달리 (즉, "나는 테이블을 본다. 테이블 상단은 내가 객체들을 놓을 수 있는 평평한 표면이다"), 일반적으로 XR 플랫폼은, 예를 들어, 테이블(503)의 지역(501)은 용기를 배치하기에 적합한 장소라는 것을 알기 위해 자신들의 환경들의 3차원 속성들을 이해하기 위해 자신들의 운영 환경들의 이미지와 깊이 데이터를 지속적으로 처리해야할 필요가 있다. 객체들의 3차원 속성들과 관련하여 시각적 정보와 이전에 형성된 접속들 사이의 연결을 신속하게 호출하는 이 동일한 능력은 또한 인간들이 장면(500)의 영역들 (예를 들어, 상기 용기의 위치를 정하는 데 적합하지 않은 평면 스크린 디스플레이(505)의 상단)을 신속하게 제외할 수 있게 한다.
대조적으로, 프로세서 기반 장치는, 사전 훈련된 접속들이 보는 것 그리고 그 사전 훈련된 접속들이 객체들과 상호 작용할 수 있는 방법 사이의 상기 사전 훈련된 접속들을 트리거하는 것에 의존하지 않으며, 프로세서에게 제공되는 이미지 및 깊이 데이터에서 표현되는 3차원 운영 환경에 대한 이해를 대신에 전형적으로 계산한다. 앞서 언급한 소형 용기와 같은 디지털 객체를 배치할 위치를 결정하기 위해, 일반적으로 XR 플랫폼들은 깊이 데이터 포인트들의 포인트 클라우드 내에서 평면을 식별하기 위해 제한 없이 깊이 데이터 포인트들을 특별히 처리할 필요가 있다. 상기 장면과 포인트 클라우드의 밀도에 종속하여, 장면 내에서 평면을 식별하는 것은 계산적으로 매우 비용이 많이 들 수 있다.
도 5b의 비제한적인 예를 참조하면, 장면(500)에 걸쳐 기록된 깊이 데이터 포인트들의 포인트 클라우드(507)의 시각화가 도시되어 있다. 각 깊이 포인트 (예: 참조번호 509의 깊이 포인트)는 상기 장면 내의 좌표 또는 로케이션을, 상기 XR 플랫폼으로부터 상기 장면의 물리적 객체까지의 측정된 거리와 연관시키는 자료이다. 포인트 클라우드(507) 내의 평면들을 식별하기 위해, 프로세서는 RANSAC 또는 포인트 클라우드(507)의 포인트들을 반복적으로 선택하고, 평면을 데이터 포인트들의 세트에 피트하고 테스트하는 다른 방법론을 적용한다.
도 5c는 포인트 클라우드(507) 내의 포인트들의 세트를 반복적으로 처리함으로써 식별된 장면(500) 내의 평면들(511)의 세트를 예시한다. 예를 들어, 식별될 평면들의 개수와 포인트 클라우드(507)의 밀도 및 잡음에 종속하여, 상기 포인트 클라우드 내의 모든 평면들을 식별하는 것은 아주 많은 처리 반복들을 취할 수 있다. 또한, 종종 XR 플랫폼이 운영 환경에서 평면들의 로케이션의 지속적인 지도를 유지하도록 구성되지 않거나 유지할 수 없기 때문에, 당면한 작업과 관련이 없는 평면을 식별하는 것과 연관된 계산 부하는 (예: 작은 용기의 위치를 지정하기 위해 장면(500) 내에서 로케이션을 찾는 가상에서 방 내 창의 평면(513)을 식별하는 것은 당면한 작업과 관련이 없음) 그런 평면들의 위치를 다시 계산해야 하는 것에 의해 더 증가된다. 프로세서 및 배터리 자원들이 제한된 경우에, XR 플랫폼에서 즉시 사용하지 않는 평면들을 식별하기 위해 포인트 클라우드 데이터를 반복적으로 처리하고 재처리하는 것은 배터리 수명 및 프레임 속도와 같은 여러 차원들에서 성능을 크게 저하시킬 수 있다.
도 5d의 비제한적인 예를 참조하면, 본 개시에 따른 특정 실시예는 평면 검출이 수행되는 깊이 데이터 포인트들의 세트를 신중하게 축소함으로써 깊이 데이터의 포인트 클라우드에서 평면들을 검출함에 있어서 상당한 효율성 이득들을 달성한다. 포인트 클라우드(507)의 모든 포인트들에 걸쳐 평면 검출을 수행하는 대신에. 본 개시의 특정 실시예에 따른 XR 플랫폼은, 디지털 객체를 배치하기 위한 적합한 평면을 제공할 가능성이 더 큰 포인트 클라우드(507)의 깊이 포인트들의 서브세트를 포함하는 (예를 들어, 도 4a의 동작 411에서) 공간적으로 정의된 평면 검출 영역에 걸쳐 평면 검출 및 공간 추정을 수행한다. 다른 모든 조건이 동일한 경우, 상기 포인트 클라우드의 더 적은 수의 포인트들 처리하면 전체 처리가 직접적으로 감소한다.
일부 실시예에 따르면, 상기 평면 검출 영역은 상기 장면의 하나 이상의 미리 정의된 슬라이스들을 포함하는 것으로 정의된다. 도 5d의 예시적인 예에서, 장면(500)은 25개의 섹션들로 분할되고, 그 중 2개만이 평면 검출 영역(517)을 정의하도록 선택된다. 장면(500) 내에 배치된 지역(501)을 보여주는 도 5e의 예시적인 예에 의해 시각화된 바와 같이, 상기 장면의 예측 가능하게 관련 없는 영역들을 배제하는 처리될 데이터에 대한 초기 제약을 결정하면, 본 개시의 특정 실시예에 따른 XR 장치는 장면의 시각적 데이터에 대한 기능적 이해를 획득하는 효율성의 면에서 갭의 일부를 폐쇄할 수 있다.
도 6은 본 개시의 일부 실시예에 따른 장치 및 방법이 어떻게 평면 검출 및 크기 추정에서 추가적인 효율성 이득을 달성할 수 있는가의 예를 예시한다. 지금까지 본 개시가, 평면 인식의 프로세스에 장면의 깊이 및 이미지가 주된 입력들인 장면의 깊이 데이터 내 XR 애플리케이션의 기능(예를 들어, XR 디스플레이에서 디지털 객체의 위치 지정)을 위해 적합한 평면을 검출하고 한정하는 것을 수반하는 실시예들에 초점을 맞추었지만, 본 개시는 그렇게 한정되지 않는다. 일부 실시예에 따르면, 제1 평면 검출 및 크기 추정 동작의 결과는 제2 평면 검출 및 크기 추정 동작의 효율성을 개선하기 위해 활용될 수 있다.
도 6의 비제한적인 예를 참조하면, 제1 평면(601)이 도면에서 보인다. 이 예에서, 제1 평면(601)은 장면의 깊이 데이터에 적용된 평면 검출 방법(예를 들어, 도 4a 및 도 4b의 방법(400))의 이전 반복의 출력을 나타낸다. 도면에 보이는 바와 같이, 제1 평면(601)은, 원점이 상기 제1 평면(601) 내의 포인트를 포함하고 그 방향이 상기 평면의 법선을 정의하는 제1 벡터(603)로 표현될 수 있다.
XR 애플리케이션이 장면에서 하나의 평면만을 검출할 필요가 있다는 것이 가능하지만, 일부 애플리케이션들에 대해서, 두 개 이상의 평면들이 검출될 필요가 있을 수 있다. 실제로 어떤 경우에는 장면 내 모든 평면들이 검출될 필요가 있을 수 있다. 본 개시에 따른 특정 실시예는 (예를 들어, 도 4a의 동작 403에서) 타겟 로케이션을 세팅하기 위해 하나 이상의 이전에 검출된 평면을 사용함으로써 다수의 (또는 장면 내의 모든 평면들) 평면들의 검출을 용이하게 할 수 있으며, (예를 들어, 도 4a의 동작 411에서) 검출 영역을 정의하고 또는 (예를 들어, 동작 413에서) 가설 평면 모델의 파라미터를 제한할 수 있다. 이러한 방식에서, 특정 실시예들은 처리될 깊이 데이터의 부피를 여전히 제한하면서 추가 관심 평면들을 식별할 수 있다.
도 6의 비제한적인 예를 참조하면, 검출된 제1 평면(601)의 특성들은 다양한 방식으로 제2 평면(605)의 검출을 용이하게 하기 위해 사용될 수 있다. 첫 번째 예에서, XR 디스플레이에 배치될 디지털 객체가 물리적 세계에서 수직 평면 및 인접한 수평 평면에 동시에 닿는 객체 (예: 사다리)의 이미지라고 가정한다. 이 예에서, XR 디스플레이에 배치될 디지털 객체의 특성은 제2 평면(605)의 특정 파라미터들 지시하며, 즉, 상기 제2 평면(605)은 제1 평면(601)에 닿을 필요가 있으며, 제2 평면 (605)을 나타내는 제2 법선 벡터 (607)는 제1 벡터(603)에 수직일 필요가 있다는 것을 지시한다. 이러한 방식에서, 상기 평면 검출 영역은 제1 평면(601)의 이웃에 기초하여 세팅될 수 있고, 가능한 평면 모델들의 범위는 제1 벡터(603)에 수직인 제2 법선 벡터(607)에 기초한 평면 모델들로만 제한된다.
일부 실시예에서, 도 6을 참조하여 설명된 하나 이상의 예상 조건을 만족하는 제2 평면을 검출하기 위해 제1 검출된 평면을 활용하는 방법은 단순히 전체 포인트 클라우드를 처리하는 것보다 더 효율적으로 장면 내 모든 평면들을 식별하기 위해 반복 및 확장될 수 있다. 하나의 비제한적인 예로서, 장면 내 모든 평면들에 대한 이해는 장면 내서 바닥의 평면을 검출한 다음 그 바닥 평면에 연결된 모든 평면들 및 그것에 연결된 평면들을 검출함으로써 생성될 수 있다. 이 접근 방식에 의해, (드론 및 헬륨으로 채워진 풍선들처럼 많은 자체-지지 객체들을 가진 운영 환경들의 장면들은 제외한) 대부분의 장면에서 거의 모든 평면들이 검출될 수 있으며, 이는 비-비행 객체들은 지지 객체들의 하나 이상의 평면들을 통해 직접적이거나 간접적으로 바닥 평면으로 연결될 것을 중력이 요청하기 때문이다.
도 7은 본 개시의 다양한 실시예에 따른 평면 검출 및 공간 추정을 수행하기 위한 방법(700)의 동작들을 설명한다. 상기 순서도가 일련의 순차적 단계들을 도시하지만, 명시적으로 언급되지 않는 한, 특정 수행 순서, 단계들이나 그 단계들의 일부의 수행이 동시에 또는 중복되는 방식이 아닌 순차적인 수행, 또는 개입 또는 중간 단계들이 발생하지 않고 독점적으로 도시된 단계들 수행에 관련된 시퀀스로부터 어떤 추론도 도출되지 않아야 한다. 방법(700)을 참조하여 설명된 상기 동작들은 깊이 및 이미지 데이터를 획득할 수 있는 XR 플랫폼(예를 들어, 도 1의 디바이스(100), 도 2의 XR 장치(200), 또는 도 3a의 XR 플랫폼(305))에서 제한 없이 수행될 수 있다. 특정 처리 단계들이 별도의 플랫폼(예: 스마트폰)에서 수행되고 사용자가 착용한 보기 디바이스로 그리고 그 디바이스로부터 데이터가 중계되는 구성과 같은 다른 하드웨어 구성이 가능하며, 본 개시의 예상된 범위 내에 존재한다.
도 7의 비제한적인 예를 참조하면, 동작 705에서 프로세서(예: 도 1의 메인 프로세서(140) 또는 도 2의 프로세서(211))는 장면 데이터를 획득한다. 특정 실시예에 따르면, 상기 획득된 장면 데이터는 XR 장치의 시각 센서(예를 들어, CMOS 센서)의 시야 내의 좌표들을 색 공간의 값과 연관시키는 이미지 데이터를 포함한다. 일부 실시예에서, 상기 깊이 데이터는 이미지 데이터를 생성하는 센서(들)의 시야의 일부와 중첩하는 깊이 센서의 시야의 일부 내의 좌표들을 상기 깊이 센서(예: LIDAR 스캐너)로부터의 거리와 연관시키는 데이터 포인트들의 포인트 클라우드를 포함한다.
일부 실시예에 따르면, 동작 710에서, 상기 프로세서는 상기 장면 데이터의 공간적으로 정의된 서브세트 (예를 들어, 깊이 센서 및 이미지 센서의 공유 시야 내의 경계 영역)를 포함하는 제1 검출 영역을 정의한다. 높은 수준에서, 상기 제1 검출 영역을 세팅함으로써, 상기 프로세서는 XR 응용 프로그램의 요구 사항에 적합한 평면 (예를 들면, 디지털 객체를 배치하기 위해 유효한 방위 및 크기를 가지는 평면)을 찾기 위해 처리될 데이터의 양을 줄인다. 일부 실시예에서, 상기 제1 검출 영역은 적어도 세팅된 타겟 로케이션(예를 들어, 도 4a의 동작 403에서 세팅된 로케이션)에 기초하여 정의된다. 일부 실시예에서, 상기 제1 검출 영역에 포함하기 위한 후보들 아닌 상기 장면 데이터의 부분들을 배제하기 위해서, 상기 장면 내 객체들의 일부 또는 전부를 식별하기 위해 AI 기반 객체 인식이 수행된다.
도 7의 예시적인 예에 보이는 것처럼, 동작 715에서 프로세서는 제1 검출 영역 내 깊이 데이터 포인트들에 기초하여 평면 모델 (예를 들어, 도 4a의 동작 413에서 정의된 평면)을 정의한다. 일부 실시예에 따르면, 상기 평면 모델은 하나 이상의 이전에 검출된 평면들과의 병렬성 또는 직각도를 보장하기 위해, 상기 평면의 법선 벡터를 위한 각도 범위와 같은 특정 제약 요건들에 따라 정의된다.
다양한 실시예에 따르면, 동작 720에서, 상기 프로세서는 상기 평면 모델에 기초하여 평면(예를 들어, 도 4a의 동작 415에서 발견된 평면)을 정의한다. 일부 실시예에서, 동작 720에서 평면을 정의하는 것은, 상기 제1 검출 영역에서 이용 가능한 깊이 데이터에 가장 잘 맞도록 초기 평면 가설을 수정하기 위해서, 샘플 및 정제 프로세스(예를 들어, RANSAC)의 다중 반복을 수행하는 단계를 포함한다.
도 7의 비제한적인 예를 참조하면, 동작 725에서 상기 프로세서는 정의된 평면의 사용 가능한 크기 중 적어도 하나의 값을 결정할 수 있다. 일부 실시예에 따르면, 상기 사용 가능한 크기는 상기 검출된 평면의 특성 치수(예를 들어, 길이, 폭 또는 직경) 중 가장 작은 값에 대응한다. 일부 실시예에 따르면, 상기 사용 가능한 크기의 적어도 하나의 값은 다수의 차원 값들(예를 들어, 상기 평면의 면적의 추정)의 곱 또는 합성물이다.
도 7의 예시적인 예를 참조하면, 동작 730에서 상기 프로세서는 디지털 객체의 특성 크기의 적어도 하나의 값을 상기 평면의 사용 가능한 크기의 적어도 하나의 값과 비교한다. 특정 실시예에 따르면, 상기 객체의 특성 크기의 값은 상기 디지털 객체의 특성 치수 (예를 들어, 길이, 너비 또는 직경) 중 가장 작은 값에 대응한다. 간단히 말해서, 특정 실시예에서, 동작 730에서, 상기 프로세서는 현재 정의된 평면이 상기 디지털 객체를 배치하기에 충분한 공간을 제공하는지 여부에 대한 판단을 수행한다.
다양한 실시예들에 따르면, 동작 735 에서, 상기 평면의 사용 가능한 크기의 적어도 하나의 값이 상기 디지털 객체의 특성 크기의 적어도 하나의 값보다 크다는 판단에 응답하여, 상기 프로세서는 상기 디지털 객체 및 상기 검출된 평면을 활용하여 XR 디스플레이를 생성한다. 일부 실시예에서, 상기 디지털 객체는 상기 검출된 평면에 대응하는 XR 디스플레이 내 이미지 데이터 영역 내에 배치된다.
본 출원에서의 어떠한 설명도 어떤 특정 요소, 단계 또는 기능이 청구 범위에 포함되어야만 하는 필수 요소임을 암시하는 것으로 해석되지 않아야 한다. 특허받은 주제의 범위는 청구범위에 의해서만 정의된다.
Claims (15)
- 장면 데이터 - 상기 장면 데이터는 장면의 이미지 데이터 및 상기 장면의 깊이 데이터를 포함하고, 상기 깊이 데이터는 포인트 클라우드의 포인트들의 깊이 측정값들을 포함함 - 를 획득하는 단계;상기 장면 데이터의 공간적으로 정의된 서브세트를 포함하는 제1 검출 영역을 정의하는 단계;상기 제1 검출 영역 내 상기 포인트 클라우드의 포인트들을 기반으로 평면 모델을 정의하는 단계;상기 평면 모델을 기반으로 평면을 정의하는 단계;상기 포인트 클라우드의 포인트들에 기초하여 상기 평면의 사용 가능한 크기의 적어도 하나의 값을 결정하는 단계;디지털 객체의 특성 크기의 적어도 하나의 값을 상기 평면의 사용 가능한 크기의 상기 적어도 하나의 값과 비교하는 단계; 및상기 디지털 객체의 특성 크기의 적어도 하나의 값이 상기 평면의 사용 가능한 크기의 상기 적어도 하나의 값보다 작다는 결정에 응답하여, 상기 평면 모델에 기초하여 상기 평면 상에 위치한 상기 디지털 객체를 포함하는 디스플레이를 생성하는 단계를 포함하는, 방법.
- 제1항에 있어서,타겟 로케이션을 수신하는 단계를 더 포함하고,상기 제1 검출 영역을 정의하는 단계는,상기 타겟 로케이션에 더 기초하여 상기 제1 검출 영역을 정의하는, 방법.
- 제2항에 있어서,객체 인식 결과를 획득하기 위해 상기 이미지 데이터 또는 상기 깊이 데이터 중 적어도 하나에 기초하여 상기 장면의 객체 검출 및 인식을 수행하는 단계를 더 포함하고,상기 제1 검출 영역을 정의하는 단계는,상기 객체 인식 결과에 적어도 부분적으로 기초하여 상기 제1 검출 영역을 정의하는, 방법.
- 제1항에 있어서,상기 제1 검출 영역 내의 포인트 클라우드의 포인트들에 기초하여 평면 모델을 정의하는 단계는:상기 포인트 클라우드의 포인트들의 제1 세트에 기초하여 제1 평면 모델을 정의하는 단계;상기 포인트 클라우드의 하나 이상의 포인트들을 랜덤으로 선택하는 단계;상기 포인트 클라우드의 상기 랜덤으로 선택된 하나 이상의 포인트들에 적어도 부분적으로 기초하여 제2 평면 모델을 정의하는 단계;상기 포인트 클라우드의 포인트들의 제1 세트 및 상기 포인트 클라우드의 상기 랜덤으로 선택된 하나 이상의 포인트들에 대한 상기 제1 평면 모델의 적합성을, 상기 포인트 클라우드의 포인트들의 제1 세트 및 상기 랜덤으로 선택된 하나 이상의 포인트들에 대한 상기 제2 평면 모델의 적합성과 비교하는 단계; 및상기 제2 평면 모델의 적합성이 상기 제1 평면 모델의 적합성보다 더 양호하다는 결정에 응답하여, 상기 제2 평면 모델을 상기 평면 모델로 정의하는 단계;를 적어도 한 번 반복 수행하는, 방법.
- 제1항에 있어서,상기 디지털 객체의 특성 크기의 적어도 하나의 값이 상기 평면의 사용 가능한 크기의 적어도 하나의 값보다 크다고 결정한 것에 응답하여:상기 포인트 클라우드의 포인트들의 제1 세트에 기초하여 제1 평면 모델을 정의하는 단계;상기 포인트 클라우드의 하나 이상의 포인트들을 랜덤으로 선택하는 단계;상기 포인트 클라우드의 상기 랜덤으로 선택된 하나 이상의 포인트들에 적어도 부분적으로 기초하여 제2 평면 모델을 정의하는 단계;상기 포인트 클라우드의 포인트들의 제1 세트 및 상기 포인트 클라우드의 상기 랜덤으로 선택된 하나 이상의 포인트들에 대한 상기 제1 평면 모델의 적합성을, 상기 포인트 클라우드의 포인트들의 제1 세트 및 상기 랜덤으로 선택된 하나 이상의 포인트들에 대한 상기 제2 평면 모델의 적합성과 비교하는 단계;상기 제2 평면 모델의 적합성이 상기 제1 평면 모델의 적합성보다 더 양호하다는 결정에 응답하여, 상기 제2 평면 모델을 상기 평면 모델로 정의하는 단계; 및제2 평면을 상기 평면으로 정의하는 단계;를 적어도 한 번 반복 수행하는 단계를 더 포함하는, 방법.
- 제1항에 있어서,상기 디지털 객체의 특성 크기의 적어도 하나의 값이 상기 평면의 사용 가능한 크기의 적어도 하나의 값보다 크다고 결정한 것에 응답하여, 상기 제1 검출 영역이 상기 포인트 클라우드의 추가 포인트들을 포함하는가의 여부를 결정하는 단계;상기 제1 검출 영역이 상기 포인트 클라우드의 추가 포인트들을 포함하지 않는다는 결정에 응답하여, 상기 장면 데이터의 제2 공간적으로 정의된 서브세트를 포함하는 제2 검출 영역을 정의하는 단계;제2 검출 영역 내 상기 포인트 클라우드의 포인트들을 기반으로 제2 평면 모델을 정의하는 단계;상기 제2 평면 모델에 기초하여 제2 평면을 정의하는 단계;상기 포인트 클라우드의 포인트들에 기초하여 상기 제2 평면의 사용 가능한 크기의 적어도 하나의 값을 결정하는 단계;디지털 객체의 특성 크기의 적어도 하나의 값을 상기 제2 평면의 사용 가능한 크기의 상기 적어도 하나의 값과 비교하는 단계; 및상기 디지털 객체의 특성 크기의 적어도 하나의 값이 상기 제2 평면의 사용 가능한 크기의 상기 적어도 하나의 값보다 작다는 결정에 응답하여, 상기 제2 평면 모델에 기초하여 상기 평면 상에 위치한 상기 디지털 객체를 포함하는 디스플레이를 생성하는 단계를 더 포함하는, 방법.
- 제1항에 있어서, 상기 제1 검출 영역은, 상기 디지털 객체의 특성 크기의 값, 상기 이미지 데이터를 제공하는 센서의 시야, 상기 깊이 데이터를 제공하는 센서의 시야, 또는 상기 포인트 클라우드의 포인트 밀도 중 적어도 하나에 기초하여 정의되는, 방법.
- 프로세서;이미지 센서;깊이 센서; 및명령어들을 포함하는 메모리를 포함하며, 상기 명령어들은 상기 프로세서에 의해 실행될 때 상기 장치로 하여금:장면 데이터 - 상기 장면 데이터는 상기 이미지 센서로부터의 장면의 이미지 데이터 및 상기 깊이 센서로부터의 상기 장면의 깊이 데이터를 포함하며, 상기 깊이 데이터는 포인트 클라우드의 포인트들의 깊이 측정 값들을 포함함 - 를 획득하도록 하고,상기 장면 데이터의 공간적으로 정의된 서브세트를 포함하는 제1 검출 영역을 정의하도록 하고,상기 제1 검출 영역 내 상기 포인트 클라우드의 포인트들을 기반으로 평면 모델을 정의하도록 하고,상기 평면 모델을 기반으로 평면을 정의하도록 하고,상기 포인트 클라우드의 포인트들에 기초하여 상기 평면의 사용 가능한 크기의 적어도 하나의 값을 결정하도록 하고,디지털 객체의 특성 크기의 적어도 하나의 값을 상기 평면의 사용 가능한 크기의 상기 적어도 하나의 값과 비교하도록 하고,상기 디지털 객체의 특성 크기의 적어도 하나의 값이 상기 평면의 사용 가능한 크기의 상기 적어도 하나의 값보다 작다는 결정에 응답하여, 상기 평면 모델에 기초하여 상기 평면 상에 위치한 상기 디지털 객체를 포함하는 디스플레이를 생성하도록 하는, 장치.
- 제8항에 있어서,상기 메모리는 명령어들을 더 포함하며, 상기 명령어들은 상기 프로세서에 의해 실행될 때 상기 장치로 하여금:타겟 로케이션을 수신하도록 하고,상기 타겟 로케이션에 더 기초하여 상기 제1 검출 영역을 정의하도록 하는, 장치.
- 제9항에 있어서,상기 메모리는 명령어들을 더 포함하며, 상기 명령어들은 상기 프로세서에 의해 실행될 때 상기 장치로 하여금:객체 인식 결과를 획득하기 위해 상기 이미지 데이터 또는 상기 깊이 데이터 중 적어도 하나에 기초하여 상기 장면의 객체 검출 및 인식을 수행하도록 하고,상기 객체 인식 결과에 적어도 부분적으로 기초하여 상기 제1 검출 영역을 정의하도록 하는, 장치.
- 제8항에 있어서,상기 메모리는 명령어들을 더 포함하며, 상기 명령어들은 상기 프로세서에 의해 실행될 때에 상기 장치로 하여금:상기 포인트 클라우드의 포인트들의 제1 세트에 기초하여 제1 평면 모델을 정의하는 단계;상기 포인트 클라우드의 하나 이상의 포인트들을 랜덤으로 선택하는 단계;상기 포인트 클라우드의 상기 랜덤으로 선택된 하나 이상의 포인트들에 적어도 부분적으로 기초하여 제2 평면 모델을 정의하는 단계;상기 포인트 클라우드의 포인트들의 제1 세트 및 상기 포인트 클라우드의 상기 랜덤으로 선택된 하나 이상의 포인트들에 대한 상기 제1 평면 모델의 적합성을, 상기 포인트 클라우드의 포인트들의 상기 제1 세트 및 상기 랜덤으로 선택된 하나 이상의 포인트들에 대한 상기 제2 평면 모델의 적합성과 비교하는 단계; 및상기 제2 평면 모델의 적합성이 상기 제1 평면 모델의 적합성보다 더 양호하다는 결정에 응답하여, 상기 제2 평면 모델을 상기 평면 모델로 정의하는 단계;를 적어도 한 번 반복 수행함으로써 상기 제1 검출 영역 내 상기 포인트 클라우드의 포인트들에 기반하여 상기 평면 모델을 정의하도록 하는, 장치.
- 제8항에 있어서,상기 메모리는 명령어들을 더 포함하며, 상기 명령어들은 상기 프로세서에 의해 실행될 때 상기 장치로 하여금:상기 디지털 객체의 특성 크기의 적어도 하나의 값이 상기 평면의 사용 가능한 크기의 적어도 하나의 값보다 크다고 결정한 것에 응답하여:상기 포인트 클라우드의 포인트들의 제1 세트에 기초하여 제1 평면 모델을 정의하는 단계;상기 포인트 클라우드의 하나 이상의 포인트들을 랜덤으로 선택하는 단계;상기 포인트 클라우드의 상기 랜덤으로 선택된 하나 이상의 포인트들에 적어도 부분적으로 기초하여 제2 평면 모델을 정의하는 단계;상기 포인트 클라우드의 포인트들의 상기 제1 세트 및 상기 포인트 클라우드의 상기 랜덤으로 선택된 하나 이상의 포인트들에 대한 상기 제1 평면 모델의 적합성을, 상기 포인트 클라우드의 포인트들의 상기 제1 세트 및 상기 랜덤으로 선택된 하나 이상의 포인트들에 대한 상기 제2 평면 모델의 적합성과 비교하는 단계;상기 제2 평면 모델의 적합성이 상기 제1 평면 모델의 적합성보다 더 양호하다는 결정에 응답하여, 상기 제2 평면 모델을 상기 평면 모델로 정의하는 단계; 및제2 평면을 상기 평면으로 정의하는 단계;를 적어도 한 번 반복 수행하도록 하는, 장치.
- 제8항에 있어서,상기 메모리는 명령어들을 더 포함하며, 상기 명령어들은 상기 프로세서에 의해 실행될 때 상기 장치로 하여금:상기 디지털 객체의 특성 크기의 적어도 하나의 값이 상기 평면의 사용 가능한 크기의 적어도 하나의 값보다 크다고 결정한 것에 응답하여, 상기 제1 검출 영역이 상기 포인트 클라우드의 추가 포인트들을 포함하는가의 여부를 결정하도록 하고;상기 제1 검출 영역이 상기 포인트 클라우드의 추가 포인트들을 포함하지 않는다는 결정에 응답하여, 상기 장면 데이터의 제2 공간적으로 정의된 서브세트를 포함하는 제2 검출 영역을 정의하도록 하고;제2 검출 영역 내 상기 포인트 클라우드의 포인트들을 기반으로 제2 평면 모델을 정의하도록 하고;상기 제2 평면 모델에 기초하여 제2 평면을 정의하도록 하고;상기 포인트 클라우드의 포인트들에 기초하여 상기 제2 평면의 사용 가능한 크기의 적어도 하나의 값을 결정하도록 하고;디지털 객체의 특성 크기의 적어도 하나의 값을 상기 제2 평면의 사용 가능한 크기의 상기 적어도 하나의 값과 비교하도록 하며;상기 디지털 객체의 특성 크기의 적어도 하나의 값이 상기 제2 평면의 사용 가능한 크기의 상기 적어도 하나의 값보다 작다는 결정에 응답하여, 상기 제2 평면 모델에 기초하여 상기 평면 상에 위치한 상기 디지털 객체를 포함하는 디스플레이를 생성하도록 하는, 장치.
- 제8항에 있어서,상기 제1 검출 영역은, 상기 디지털 객체의 특성 크기의 값, 상기 이미지 데이터를 제공하는 센서의 시야, 상기 깊이 데이터를 제공하는 센서의 시야, 또는 상기 포인트 클라우드의 포인트 밀도 중 적어도 하나에 기초하여 정의되는, 장치.
- 명령어들을 포함하는 비-일시적 컴퓨터 판독가능 매체로서, 상기 명령어들은 프로세서에 의해 실행될 때 장치로 하여금:장면 데이터 - 상기 장면 데이터는 이미지 센서로부터의 장면의 이미지 데이터 및 깊이 센서로부터의 상기 장면의 깊이 데이터를 포함하며, 상기 깊이 데이터는 포인트 클라우드의 포인트들의 깊이 측정 값들을 포함함 - 를 획득하도록 하고,상기 장면 데이터의 공간적으로 정의된 서브세트를 포함하는 제1 검출 영역을 정의하도록 하고,상기 제1 검출 영역 내 상기 포인트 클라우드의 포인트들을 기반으로 평면 모델을 정의하도록 하고,상기 평면 모델을 기반으로 평면을 정의하도록 하고,상기 포인트 클라우드의 포인트들에 기초하여 상기 평면의 사용 가능한 크기의 적어도 하나의 값을 결정하도록 하고,디지털 객체의 특성 크기의 적어도 하나의 값을 상기 평면의 사용 가능한 크기의 상기 적어도 하나의 값과 비교하도록 하고상기 디지털 객체의 특성 크기의 적어도 하나의 값이 상기 평면의 사용 가능한 크기의 상기 적어도 하나의 값보다 작다는 결정에 응답하여, 상기 평면 모델에 기초하여 상기 평면 상에 위치한 상기 디지털 객체를 포함하는 디스플레이를 생성하도록 하는, 비-일시적 컴퓨터 판독가능 매체.
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163140166P | 2021-01-21 | 2021-01-21 | |
US63/140,166 | 2021-01-21 | ||
US17/346,105 | 2021-06-11 | ||
US17/346,105 US11741676B2 (en) | 2021-01-21 | 2021-06-11 | System and method for target plane detection and space estimation |
KR10-2022-0007378 | 2022-01-18 | ||
KR1020220007378A KR20220106063A (ko) | 2021-01-21 | 2022-01-18 | 타겟 평면 검출 및 공간 추정을 위한 장치 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022158834A1 true WO2022158834A1 (ko) | 2022-07-28 |
Family
ID=82549905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2022/000951 WO2022158834A1 (ko) | 2021-01-21 | 2022-01-19 | 타겟 평면 검출 및 공간 추정을 위한 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2022158834A1 (ko) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130118105A (ko) * | 2012-04-19 | 2013-10-29 | 삼성전자주식회사 | 평면 기반의 3차원 공간 표현 방법 및 장치 |
US20140363073A1 (en) * | 2013-06-11 | 2014-12-11 | Microsoft Corporation | High-performance plane detection with depth camera data |
KR20160048874A (ko) * | 2013-08-30 | 2016-05-04 | 퀄컴 인코포레이티드 | 물리적 장면을 표현하기 위한 방법 및 장치 |
KR20180087947A (ko) * | 2017-01-26 | 2018-08-03 | 삼성전자주식회사 | 3차원의 포인트 클라우드를 이용한 모델링 방법 및 모델링 장치 |
-
2022
- 2022-01-19 WO PCT/KR2022/000951 patent/WO2022158834A1/ko active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130118105A (ko) * | 2012-04-19 | 2013-10-29 | 삼성전자주식회사 | 평면 기반의 3차원 공간 표현 방법 및 장치 |
US20140363073A1 (en) * | 2013-06-11 | 2014-12-11 | Microsoft Corporation | High-performance plane detection with depth camera data |
KR20160048874A (ko) * | 2013-08-30 | 2016-05-04 | 퀄컴 인코포레이티드 | 물리적 장면을 표현하기 위한 방법 및 장치 |
KR20180087947A (ko) * | 2017-01-26 | 2018-08-03 | 삼성전자주식회사 | 3차원의 포인트 클라우드를 이용한 모델링 방법 및 모델링 장치 |
Non-Patent Citations (1)
Title |
---|
NUCHTER, A. ; HERTZBERG, J.: "Towards semantic maps for mobile robots", ROBOTICS AND AUTONOMOUS SYSTEMS, ELSEVIER BV, AMSTERDAM, NL, vol. 56, no. 11, 30 November 2008 (2008-11-30), AMSTERDAM, NL , pages 915 - 926, XP025561288, ISSN: 0921-8890, DOI: 10.1016/j.robot.2008.08.001 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11202006B2 (en) | CMOS-assisted inside-out dynamic vision sensor tracking for low power mobile platforms | |
US10755425B2 (en) | Automatic tuning of image signal processors using reference images in image processing environments | |
TW202201178A (zh) | 低功率視覺追蹤系統 | |
CN106164982B (zh) | 基于影像的电子设备定位 | |
CN104956404B (zh) | 具有功率有效深度传感器使用的实时三维重建 | |
KR20220106063A (ko) | 타겟 평면 검출 및 공간 추정을 위한 장치 및 방법 | |
CN110310329A (zh) | 操作显示设备的方法、信息处理系统及非暂时性存储介质 | |
US11809617B2 (en) | Systems and methods for generating dynamic obstacle collision warnings based on detecting poses of users | |
CN110709897A (zh) | 用于插入到图像中的图像内容的阴影生成 | |
TW201636681A (zh) | 利於改善玻璃顯示器的查看能力 | |
WO2023146241A1 (en) | System and method for generating a three-dimensional photographic image | |
WO2020017890A1 (en) | System and method for 3d association of detected objects | |
US12101557B2 (en) | Pose tracking for rolling shutter camera | |
US20180075294A1 (en) | Determining a pointing vector for gestures performed before a depth camera | |
KR102337209B1 (ko) | 주변 상황 정보를 통지하기 위한 방법, 전자 장치 및 저장 매체 | |
US12039749B2 (en) | Low power visual tracking systems | |
US20230388632A1 (en) | Dynamic adjustment of exposure and iso to limit motion blur | |
CN109791432A (zh) | 推迟影响图形用户界面的信息的状态改变直至不专注的情况期间 | |
WO2022158834A1 (ko) | 타겟 평면 검출 및 공간 추정을 위한 장치 및 방법 | |
KR20240006669A (ko) | 늦은-워핑에서의 동적 오버-렌더링 | |
US12125150B2 (en) | Scene change detection with novel view synthesis | |
US20230267691A1 (en) | Scene change detection with novel view synthesis | |
KR102516278B1 (ko) | 미디어 패널에 대한 직관적인 컨트롤 환경을 제공하는 사용자 단말, 서버, 및 디스플레이 장치 | |
CN117115481B (zh) | 一种定位方法、电子设备及介质 | |
KR20240152896A (ko) | 신규 뷰 합성을 이용한 장면 변화 검출 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22742810 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 22742810 Country of ref document: EP Kind code of ref document: A1 |