Plane Detection Using Semantic Segmentation
By combining semantic segmentation and point cloud methods, plane hypotheses are generated, which solves the problem of CGR objects not being anchored in unmapped or dynamic scenes, and improves the authenticity and credibility of user experience.
Patent Information
- Application Number
- CN202310916660.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-03-21
- Filing Date
- 2019-06-24
- Publication Date
- 2025-09-26
- Estimated Expiration
- 2039-06-24
AI Technical Summary
In computer-generated reality environments, CGR objects are not anchored to real-world surfaces in unmapped or dynamic scenes, resulting in unrealistic and unconvincing user experiences.
By using semantic segmentation technology to classify scene images, generating object classification sets, and combining point cloud data to make plane assumptions, the computational complexity is reduced and the efficiency of scene mapping is improved.
This enables more accurate anchoring of CGR objects to real-world surfaces in computer-generated reality environments, improving the realism and credibility of the user experience.
Smart Images

Figure CN116778368B_ABST
Abstract
Description
[0001] This application is a divisional application of the invention patent application with the application date of June 24, 2019, Chinese application number 201910550165.9, and invention name “Plane Detection Using Semantic Segmentation”. Technical Field
[0002] The present disclosure relates generally to plane detection, and more particularly to systems, methods, and devices for plane detection based on semantic segmentation. Background Art
[0003] The physical environment refers to the physical world that people can sense and / or interact with without the help of electronic systems. A physical environment, such as a physical park, includes physical objects, such as physical trees, physical buildings, and physical people. People can directly sense and / or interact with the physical environment, such as through sight, touch, hearing, taste, and smell.
[0004] In contrast, a computer-generated reality (CGR) environment refers to a fully or partially simulated environment that a person perceives and / or interacts with via an electronic system. In CGR, a subset of a person's physical movements, or representations thereof, is tracked, and in response, one or more features of one or more virtual objects simulated in the CGR environment are adjusted in a manner that conforms to at least one law of physics. For example, a CGR system may detect a person's head rotation and, in response, adjust the graphical content and sound field presented to the person in a manner similar to how such views and sounds change in a physical environment. In some cases (e.g., for accessibility reasons), adjustments to features of virtual objects in a CGR environment may be made in response to representations of physical movements (e.g., voice commands).
[0005] A person can sense and / or interact with CGR objects using any of their senses, including vision, hearing, touch, taste, and smell. For example, a person can sense and / or interact with audio objects, which create a 3D or spatial audio environment that provides the perception of a point audio source in 3D space. As another example, an audio object can enable audio transparency, which selectively introduces ambient sounds from the physical environment with or without computer-generated audio. In some CGR environments, a person can sense and / or interact only with audio objects.
[0006] Examples of CGR include virtual reality and mixed reality.
[0007] A virtual reality (VR) environment is a simulated environment designed to be based entirely on computer-generated sensory input to one or more senses. A VR environment includes multiple virtual objects that a person can sense and / or interact with. For example, trees, buildings, and computer-generated images representing human avatars are examples of virtual objects. A person can sense and / or interact with virtual objects in a VR environment through the simulation of their presence within the computer-generated environment and / or through the simulation of a subset of their physical movements within the computer-generated environment.
[0008] In contrast to VR environments, which are designed to be based entirely on computer-generated sensory input, mixed reality (MR) environments are simulated environments designed to include sensory input from the physical environment, or representations thereof, in addition to computer-generated sensory input (e.g., virtual objects). On the virtuality continuum, a mixed reality environment is anything between a fully physical environment at one end and a virtual reality environment at the other, but not including either end.
[0009] In some MR environments, computer-generated sensory input can respond to changes in sensory input from the physical environment. Additionally, some electronic systems used to render the MR environment can track the position and / or orientation relative to the physical environment to enable virtual objects to interact with real objects (i.e., physical items from the physical environment or representations thereof). For example, the system can cause motion so that virtual trees appear stationary relative to the physical ground.
[0010] Examples of mixed reality include augmented reality and augmented virtuality.
[0011] An augmented reality (AR) environment refers to a simulated environment in which one or more virtual objects are superimposed on a physical environment or a representation thereof. For example, an electronic system for presenting an AR environment may have a transparent or translucent display through which a person can directly view the physical environment. The system may be configured to present virtual objects on a transparent or translucent display so that a person uses the system to perceive the virtual objects superimposed on the physical environment. Alternatively, the system may have an opaque display and one or more imaging sensors that capture images or videos of the physical environment, which are representations of the physical environment. The system combines the images or videos with the virtual objects and presents the combination on an opaque display. A person uses the system to indirectly view the physical environment via the images or videos of the physical environment and perceives the virtual objects superimposed on the physical environment. As used herein, a video of a physical environment displayed on an opaque display is referred to as "transparent video," meaning that the system uses one or more image sensors to capture images of the physical environment and uses those images when presenting the AR environment through the opaque display. Further alternatively, the system may have a projection system that projects virtual objects into the physical environment, for example as holograms or on physical surfaces, so that a person using the system perceives the virtual objects superimposed on the physical environment.
[0012] An augmented reality environment also refers to a simulated environment in which a representation of a physical environment is transformed by computer-generated sensory information. For example, in providing pass-through video, the system can transform one or more sensor images to apply a perspective (e.g., a viewpoint) that is different from the perspective captured by the imaging sensor. For another example, a representation of a physical environment can be transformed by graphically modifying (e.g., enlarging) a portion thereof so that the modified portion is a representative, but not a realistic, version of the original captured image. For another example, a representation of a physical environment can be transformed by graphically eliminating or blurring a portion thereof.
[0013] An augmented virtual (AV) environment is a simulated environment in which a virtual or computer-generated environment incorporates one or more sensory inputs from the physical environment. The sensory inputs can be representations of one or more features of the physical environment. For example, an AV park can have virtual trees and virtual buildings, but the faces of people are realistically reproduced from images taken of physical people. In another example, a virtual object can adopt the shape or color of a physical object imaged by one or more imaging sensors. In another example, a virtual object can adopt a shadow that matches the position of the sun in the physical environment.
[0014] There are many different types of electronic systems that enable people to sense and / or interact with various CGR environments. Examples include head-mounted systems, projection-based systems, heads-up displays (HUDs), vehicle windshields with integrated display capabilities, windows with integrated display capabilities, displays formed as lenses designed to be placed on a person's eyes (e.g., similar to contact lenses), headphones / earpieces, speaker arrays, input systems (e.g., wearable or handheld controllers with or without tactile feedback), smartphones, tablets, and desktop / laptop computers. A head-mounted system can have one or more speakers and an integrated opaque display. Alternatively, a head-mounted system can be configured to accept an external opaque display (e.g., a smartphone). A head-mounted system can incorporate one or more imaging sensors for capturing images or video of the physical environment, and / or one or more microphones for capturing audio of the physical environment. Instead of an opaque display, a head-mounted system can have a transparent or translucent display. The transparent or translucent display can have a medium through which light representing the image is directed to the person's eyes. The display can utilize digital light projection, OLED, LED, uLED, liquid crystal on silicon, laser scanning light source, or any combination of these technologies. The medium can be an optical waveguide, a holographic medium, an optical combiner, an optical reflector, or any combination thereof. In one embodiment, the transparent or translucent display can be configured to selectively become opaque. The projection-based system can employ retinal projection technology that projects graphic images onto the retina of a person. The projection system can also be configured to project virtual objects into a physical environment, for example, as a hologram or on a physical surface.
[0015] Placing CGR objects in unmapped or dynamic scenes presents challenges, at least from a user experience perspective. If a CGR object is placed in a scene without an appropriate virtual substrate, it may not be anchored to the real-world surfaces in the scene. Consequently, the CGR object may float in mid-air, obscuring or colliding with real-world objects. This creates a poor user experience that is neither realistic nor believable. Accordingly, in various implementations, this challenge is addressed by detecting planes within the scene and determining their extents, thereby providing a virtual substrate upon which the CGR object is placed. BRIEF DESCRIPTION OF THE DRAWINGS
[0016] So that the present disclosure may be understood by those skilled in the art, a more detailed description may be had with reference to aspects of certain exemplary implementations, some of which are illustrated in the accompanying drawings.
[0017] Figure 1 is a block diagram of an example operating environment according to some implementations.
[0018] Figure 2is a block diagram of an example controller according to some implementations.
[0019] Figure 3 is a block diagram of an exemplary HMD according to some implementations.
[0020] Figure 4 A scene is shown along with a handheld electronic device surveying the scene.
[0021] Figure 5 Shown Figure 4 A handheld electronic device for surveying scenes.
[0022] Figure 6 A flowchart representation of a method of generating a plane hypothesis according to some implementations is shown.
[0023] As is common practice, the various features shown in the accompanying drawings may not be drawn to scale. Therefore, the dimensions of various features may be arbitrarily expanded or reduced for clarity. Furthermore, some of the accompanying drawings may not depict all components of a given system, method, or apparatus. Finally, similar reference numerals may be used to denote similar features throughout the specification and accompanying drawings. Summary of the Invention
[0024] Various embodiments disclosed herein include devices, systems, and methods for scene camera retargeting. In various embodiments, the method is performed in an HMD comprising one or more processors, non-transitory memory, and a scene camera. The method includes acquiring a scene image comprising a plurality of pixels and acquiring a point cloud based on the scene image. The method includes generating an object classification set based on the scene image, each element of the object classification set comprising a corresponding plurality of pixels classified as a corresponding object in the scene. The method includes generating a plane hypothesis based on the point cloud and the object classification set.
[0025] According to some specific implementations, a device includes one or more processors, non-volatile memory, and one or more programs; the one or more programs are stored in the non-volatile memory and are configured to be executed by the one or more processors, and the one or more programs include instructions for performing or causing the performance of any of the methods described herein. According to some specific implementations, a non-volatile computer-readable storage medium has instructions stored therein, which, when executed by one or more processors of the device, cause the device to perform or cause the performance of any of the methods described herein. According to some specific implementations, a device includes: one or more processors, non-volatile memory, and means for performing or causing the performance of any of the methods described herein. DETAILED DESCRIPTION
[0026] Numerous details are described to provide a thorough understanding of the exemplary implementations shown in the accompanying drawings. However, the accompanying drawings illustrate only some example aspects of the present disclosure and, therefore, should not be considered limiting. One of ordinary skill in the art will appreciate that other effective aspects and / or variations do not include all of the specific details described herein. In addition, well-known systems, methods, components, devices, and circuits are not described in detail in order to avoid obscuring more relevant aspects of the exemplary implementations described herein.
[0027] To allow users to place CGR objects in a CGR environment, the scene is mapped to generate several plane hypotheses that roughly describe real-world surfaces on which CGR objects can be placed. Scene mapping can be time-consuming and / or computationally expensive. To reduce the complexity of the problem, additional information from semantic segmentation (classifying pixels of a scene image as belonging to various objects) is used to assist plane detection.
[0028] Figure 1 1 is a block diagram of an exemplary operating environment 100 according to some implementations. Although relevant features are shown, those skilled in the art will recognize from this disclosure that various other features are not shown for the sake of brevity and to avoid obscuring more relevant aspects of the exemplary implementations disclosed herein. To this end, as a non-limiting example, the operating environment 100 includes a controller 110 and an HMD 120.
[0029] In some implementations, the controller 110 is configured to manage and coordinate the user's CGR experience. In some implementations, the controller 110 includes a suitable combination of software, firmware, and / or hardware. Figure 2 The controller 110 is described in more detail. In some implementations, the controller 110 is a computing device located locally or remotely relative to the scene 105. For example, the controller 110 is a local server located within the scene 105. In another example, the controller 110 is a remote server (e.g., a cloud server, a central server, etc.) located outside the scene 105. In some implementations, the controller 110 is communicatively coupled to the HMD 120 via one or more wired or wireless communication channels 144 (e.g., Bluetooth, IEEE 802.11x, IEEE 802.16x, IEEE 802.3x, etc.). In another example, the controller 110 is contained within the housing of the HMD 120.
[0030] In some implementations, the HMD 120 is configured to provide a CGR experience to the user. In some implementations, the HMD 120 includes a suitable combination of software, firmware, and / or hardware. Figure 3HMD 120 is described in greater detail. In some implementations, the functionality of controller 110 is provided by and / or integrated with HMD 120.
[0031] According to some implementations, the HMD 120 provides a CGR experience to the user while the user is virtually and / or physically present within the scene 105. In some implementations, when presenting an AR experience, the HMD 120 is configured to present AR content (e.g., one or more virtual objects) and to enable optical see-through of the scene 105. In some implementations, when presenting an AR experience, the HMD 120 is configured to present AR content (e.g., one or more virtual objects) that is overlaid or otherwise combined with an image or portion thereof captured by a scene camera of the HMD 120. In some implementations, when presenting AV content, the HMD 120 is configured to present real-world elements or representations thereof that are combined with or overlaid on the user's view of a computer-simulated environment. In some implementations, when presenting a VR experience, the HMD 120 is configured to present VR content.
[0032] In some implementations, the user wears the HMD 120 on their head. Thus, the HMD 120 includes one or more CGR displays configured to display CGR content. For example, in various implementations, the HMD 120 encompasses the user's field of view. In some implementations, a handheld device configured to present CGR content (such as a smartphone or tablet) is used in place of the HMD 120, and the user no longer wears the HMD 120 but instead holds the device with the display facing the user's field of view and the camera facing the scene 105. In some implementations, the handheld device can be placed in a housing that can be worn on the user's head. In some implementations, a CGR pod, housing, or chamber configured to present CGR content is used in place of the HMD 120, in which the user no longer wears or holds the HMD 120.
[0033] Figure 2is a block diagram of an example of a controller 110 according to some implementations. While certain specific features are shown, those skilled in the art will recognize from this disclosure that various other features are not shown for the sake of brevity and so as not to obscure more relevant aspects of the implementations disclosed herein. For this purpose, as a non-limiting example, in some implementations, the controller 110 includes one or more processing units 202 (e.g., a microprocessor, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a graphics processing unit (GPU), a central processing unit (CPU), a processing core, etc.), one or more input / output (I / O) devices 206, one or more communication interfaces 208 (e.g., a universal serial bus (USB), FIREWIRE, THUNDERBOLT, IEEE 802.3x, IEEE 802.11x, IEEE 802.16x, Global System for Mobile Communications (GSM), code division multiple access (CDMA), time division multiple access (TDMA), global positioning system (GPS), infrared (IR), Bluetooth, ZIGBEE, and / or similar type interfaces), one or more programming (e.g., I / O) interfaces 210, a memory 220, and one or more communication buses 204 for interconnecting these and various other components.
[0034] In some implementations, the one or more communication buses 204 include circuits that interconnect and control communications between system components. In some implementations, the one or more I / O devices 206 include at least one of a keyboard, a mouse, a trackpad, a joystick, one or more microphones, one or more speakers, one or more image sensors, one or more displays, and the like.
[0035] Memory 220 includes high-speed random access memory, such as dynamic random access memory (DRAM), static random access memory (SRAM), double data rate random access memory (DDR RAM), or other random access solid-state storage devices. In some embodiments, memory 220 includes non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid-state storage devices. Memory 220 optionally includes one or more storage devices at a remote location relative to one or more processing units 202. Memory 220 includes non-transitory computer-readable storage media. In some embodiments, memory 220 or the non-transitory computer-readable storage medium of memory 220 stores the following programs, modules, and data structures, or a subset thereof, including an optional operating system 230 and a CGR experience module 240.
[0036] The operating system 230 includes processes for handling various basic system services and for performing hardware-related tasks. In some implementations, the CGR experience module 240 is configured to manage and coordinate single or multiple CGR experiences for one or more users (e.g., a single CGR experience for one or more users, or multiple CGR experiences for corresponding groups of one or more users). To this end, in various implementations, the CGR experience module 240 includes a data acquisition unit 242, a tracking unit 244, a coordination unit 246, and a data transmission unit 248.
[0037] In some implementations, the data acquisition unit 242 is configured to acquire data (e.g., presentation data, interaction data, sensor data, position data, etc.) from at least the HMD 120. To this end, in various implementations, the data acquisition unit 242 includes instructions and / or logic for the instructions, as well as heuristics and metadata for the heuristics.
[0038] In some implementations, the tracking unit 244 is configured to map the scene 105 and track at least the position / location of the HMD 120 relative to the scene 105. For this purpose, in various implementations, the tracking unit 244 includes instructions and / or logic for the instructions and heuristics and metadata for the heuristics.
[0039] In some implementations, the coordination unit 246 is configured to manage and coordinate the CGR experience presented to the user by the HMD 120. To this end, in various implementations, the coordination unit 246 includes instructions and / or logic for instructions, as well as heuristics and metadata for the heuristics.
[0040] In some implementations, the data transfer unit 248 is configured to transfer data (e.g., presentation data, position data, etc.) to at least the HMD 120. To this end, in various implementations, the data transfer unit 248 includes instructions and / or logic for instructions, as well as heuristics and metadata for the heuristics.
[0041] Although the data acquisition unit 242, the tracking unit 244, the coordination unit 246, and the data transfer unit 248 are illustrated as residing on a single device (e.g., the controller 110), it should be understood that in other implementations, any combination of the data acquisition unit 242, the tracking unit 244, the coordination unit 246, and the data transfer unit 248 may be located in separate computing devices.
[0042] also, Figure 2It serves more as a functional description of various features that may be present in a particular embodiment, rather than as a structural diagram of the specific implementation described herein. As one of ordinary skill in the art will recognize, items shown separately may be combined, and some items may be separated. For example, Figure 2 Some functional modules shown separately in the figure may be implemented in a single module, and the various functions of a single functional block may be implemented by one or more functional blocks in various specific implementations. The actual number of modules and the division of specific functions and how the features are distributed among them will vary depending on the specific implementation and, in some specific implementations, will depend in part on the specific combination of hardware, software, and / or firmware selected for a particular embodiment.
[0043] Figure 3 is a block diagram of an example of an HMD 120 according to some implementations. While certain specific features are shown, those skilled in the art will appreciate from this disclosure that various other features are not shown for the sake of brevity and so as not to obscure more relevant aspects of the implementations disclosed herein. To this end, as a non-limiting example, in some implementations, the HMD 120 includes one or more processing units 302 (e.g., microprocessors, ASICs, FPGAs, GPUs, CPUs, processing cores, etc.), one or more input / output (I / O) devices and sensors 306, one or more communication interfaces 308 (e.g., USB, FIREWIRE, THUNDERBOLT, IEEE 802.3x, IEEE 802.11x, IEEE 802.16x, GSM, CDMA, TDMA, GPS, IR, BLUETOOTH, ZIGBEE, and / or similar types of interfaces), one or more programming (e.g., I / O) interfaces 310, one or more CGR displays 312, one or more optional internal-facing and / or external-facing image sensors 314, memory 320, and one or more communication buses 304 for interconnecting these and various other components.
[0044] In some implementations, the one or more communication buses 304 include circuits that interconnect and control communications between system components. In some implementations, the one or more I / O devices and sensors 306 include an inertial measurement unit (IMU), an accelerometer, a gyroscope, a thermometer, one or more physiological sensors (e.g., a blood pressure monitor, a heart rate monitor, a blood oxygen sensor, a blood glucose sensor, etc.), one or more microphones, one or more speakers, a haptic engine, and / or one or more depth sensors (e.g., structured light, time of flight, etc.), etc.
[0045] In some implementations, one or more CGR displays 312 are configured to provide a CGR experience to the user. In some implementations, the one or more CGR displays 312 correspond to holographic, digital light processing (DLP), liquid crystal display (LCD), liquid crystal on silicon (LCoS), organic light-emitting field effect transistor (OLET), organic light-emitting diode (OLED), surface conduction electron emitter display (SED), field emission display (FED), quantum dot light-emitting diode (QD-LED), microelectromechanical system (MEMS), and / or similar display types. In some implementations, the one or more CGR displays 312 correspond to waveguide displays such as diffraction, reflection, polarization, holographic, etc. For example, the HMD 120 includes a single CGR display. For another example, the HMD 120 includes a CGR display for each eye of the user. In some implementations, the one or more CGR displays 312 can present AR and VR content. In some implementations, the one or more CGR displays 312 can present AR or VR content.
[0046] In some implementations, the one or more image sensors 314 are configured to acquire image data corresponding to at least a portion of the user's face, including the user's eyes (and thus can be referred to as an eye-tracking camera). In some implementations, the one or more image sensors 314 are configured to face forward so as to acquire image data corresponding to the scene that the user would see when the HMD 120 is not present (and thus can be referred to as a scene camera). The one or more optional image sensors 314 can include one or more RGB cameras (e.g., having a complementary metal oxide semiconductor (CMOS) image sensor or a charge coupled device (CCD) image sensor), one or more infrared (IR) cameras, and / or one or more event-based cameras, among others.
[0047] Memory 320 includes high-speed random access memory, such as DRAM, SRAM, DDR RAM, or other random access solid-state memory devices. In some implementations, memory 320 includes non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid-state storage devices. Memory 320 optionally includes one or more storage devices remotely located relative to one or more processing units 302. Memory 320 includes non-transitory computer-readable storage media. In some implementations, memory 320 or the non-transitory computer-readable storage media of memory 320 stores the following programs, modules, and data structures, or a subset thereof, including an optional operating system 330 and a CGR rendering module 340.
[0048] The operating system 330 includes processes for handling various basic system services and processes for performing hardware-related tasks. In some implementations, the CGR presentation module 340 is configured to present CGR content to a user via one or more CGR displays 312. To this end, in various implementations, the CGR presentation module 340 includes a data acquisition unit 342, a CGR presentation unit 344, a plane detection unit 346, and a data transmission unit 348.
[0049] In some implementations, the data acquisition unit 342 is configured to acquire data (e.g., presentation data, interaction data, sensor data, location data, etc.) from at least the controller 110. To this end, in various implementations, the data acquisition unit 342 includes instructions and / or logic for instructions, as well as heuristics and metadata for the heuristics.
[0050] In some implementations, the CGR rendering unit 344 is configured to render CGR content via one or more CGR displays 312. To this end, in various implementations, the CGR rendering unit 344 includes instructions and / or logic for instructions and heuristics and metadata for the heuristics.
[0051] In some implementations, plane detection unit 346 is configured to generate one or more plane hypotheses based on one or more images of a scene (e.g., captured using a scene camera of one or more image sensors 314). To this end, in various implementations, plane detection unit 346 includes instructions and / or logic for instructions, as well as heuristics and metadata for the heuristics.
[0052] In some implementations, the data transfer unit 348 is configured to transfer data (e.g., presentation data, location data, etc.) to at least the controller 110. To this end, in various implementations, the data transfer unit 348 includes instructions and / or logic for instructions, as well as heuristics and metadata for the heuristics.
[0053] Although the data acquisition unit 342, the CGR rendering unit 344, the plane detection unit 346, and the data transfer unit 348 are shown as residing on a single device (e.g., the HMD 120), it should be understood that in other specific implementations, any combination of the data acquisition unit 342, the CGR rendering unit 344, the plane detection unit 346, and the data transfer unit 348 may be located in separate computing devices.
[0054] also, Figure 3It serves more as a functional description of various features that may be present in a particular embodiment, rather than as a structural diagram of the specific implementation described herein. As one of ordinary skill in the art will recognize, items shown separately may be combined, and some items may be separated. For example, Figure 3 Some functional modules shown separately in the figure may be implemented in a single module, and the various functions of a single functional block may be implemented by one or more functional blocks in various specific implementations. The actual number of modules and the division of specific functions and how the features are distributed among them will vary depending on the specific implementation and, in some specific implementations, will depend in part on the specific combination of hardware, software, and / or firmware selected for a particular embodiment.
[0055] Figure 4 A scene 405 is shown along with a handheld electronic device 410 surveying the scene 405. The scene 405 includes a portrait 406 hanging on a wall 407 and a table 408.
[0056] Handheld electronic device 410 displays a representation of scene 415, including a representation of portrait 416 hanging on a representation of wall 417 and a representation of table 418. While surveying scene 405, handheld electronic device 410 generates a map of scene 405 that includes several plane hypotheses within a CGR coordinate system. Each of the plane hypotheses defines a planar area in the CGR coordinate system and can be specified in any of a number of ways. For example, in various implementations, the plane hypotheses include a plane equation or corresponding coefficients. In various implementations, the plane hypotheses include an indication of the boundaries of the plane, for example, the extent of the plane in the CGR coordinate system. Each of the plane hypotheses corresponds to a planar surface of scene 405, for example, wall 407, the floor, or the top of table 408.
[0057] In various implementations, handheld electronic device 410 generates a plane hypothesis based on a point cloud and a set of object classifications. In various implementations, the point cloud is based on an image of the scene acquired by a scene camera, comprising a plurality of pixels (e.g., a pixel matrix). In various implementations, the point cloud comprises a plurality of three-dimensional points within a CGR coordinate system. In various implementations, the CGR coordinate system is gravity-aligned, such that one of the coordinates (e.g., the z coordinate) extends in the opposite direction of the gravity vector. The gravity vector can be acquired via an accelerometer of handheld electronic device 410. Each point in the point cloud represents a point on a surface of scene 405, such as a wall 407, a floor, or a table 408. In various implementations, the point cloud is acquired using a VIO (visual inertial odometry) and / or a depth sensor. In various implementations, the point cloud is based on an image of the scene and previous images of scene 405 taken from different angles to provide stereoscopic imaging. In various implementations, points in the point cloud are associated with metadata, which may be metadata such as the color, texture, reflectivity, or transmittance of the point on a surface in the scene, or a confidence level in the position of the point on a surface in the scene 405 .
[0058] The handheld electronic device 410 can use a variety of methods to determine a plane hypothesis (or multiple plane hypotheses) from the point cloud. For example, in various embodiments, a RANSAC (Random Sample Consensus) method is used to generate plane hypotheses based on the point cloud. In one RANSAC method, iterations include selecting three random points in the point cloud, determining the plane defined by the three random points, and determining the number of points in the point cloud that are within a preset distance (e.g., 1 cm) of the plane. The number of points forms a score (or confidence) for the plane, and after several iterations, the plane with the highest score is selected for generating a plane hypothesis. As the points detected on the plane are removed from the point cloud, the method can be repeated to detect another plane. In various embodiments, the handheld electronic device 410 uses other methods for determining plane hypotheses, such as those described in U.S. Provisional Patent Application No. 62 / 620,971, filed on January 23, 2018, which is a related application and is incorporated herein by reference in its entirety.
[0059] Based on the orientation of handheld electronic device 410 , each point in the point cloud corresponds to a respective pixel of the image of scene 405 surveyed by handheld electronic device 410 .
[0060] In various implementations, the object classification set is based on an image of a scene 405. The object classification set includes one or more elements, each element including a corresponding subset of a plurality of pixels (of the scene image) that are classified as a corresponding object in the scene. In various implementations, the object classification set is generated based on semantic segmentation. In various implementations, the object classification set is generated using a neural network applied to the scene image. In various implementations, an element of the object classification set includes a label indicating an object in the scene corresponding to the element (e.g., wall 407, floor, or table 408).
[0061] Figure 5 Shown Figure 4 A handheld electronic device 410 is used to survey a scene 405. Figure 5 In , the representation of scene 415 is shown with different elements (respective subsets of a plurality of pixels) colored in different colors. Figure 5 , the object classification set includes four elements, namely, a first element 506 including a subset of representations corresponding to the portrait 416 in multiple pixels, a second element 507A-507C including a (discontinuous) subset of representations corresponding to the wall 417 in multiple pixels, a third element 508 including a subset of representations corresponding to the top of the table 418 in multiple pixels, and a fourth element 511 including a subset of representations corresponding to the floor in multiple pixels.
[0062] In various implementations, the object classification set assists the handheld electronic device 410 in determining a plane hypothesis in various ways. In various implementations, the handheld electronic device 410 uses the object classification set to reduce the number of points in the point cloud used in a plane detection method (e.g., RANSAC), thereby improving computational efficiency. For example, the handheld electronic device 410 identifies a subset of pixels in the points of the point cloud that correspond to a particular element of the object classification set (e.g., a subset of pixels in the points of the point cloud that correspond to the third element 508), and performs the RANSAC plane detection algorithm using only these points, which may converge much faster than using additional points from other surfaces.
[0063] In various implementations, the handheld electronic device 410 uses the object classification set to modify a plane hypothesis generated based on the point cloud. For example, the handheld electronic device 410 generates a first plane hypothesis based on the point cloud, the first plane hypothesis having a boundary. The first plane hypothesis includes a subset of points in the point cloud that are within a set distance of a plane. In various implementations, the subset of points in the point cloud includes points that correspond to pixels in the image of two different elements of the object classification set. Accordingly, in various implementations, the handheld electronic device 410 may split the first plane hypothesis into two (or more) plane hypotheses, each associated with a point in the subset of points in the point cloud that corresponds to a corresponding element of the object classification set. Additionally, in various implementations, the handheld electronic device 410 may lower the confidence (or other score) of the first plane hypothesis. In various implementations, the subset of points in the point cloud corresponds to pixels in the image that correspond to a particular element of the object classification set, but fails to include one or more points in the point cloud that correspond to pixels in the image of that particular element. Therefore, in various implementations, the handheld electronic device 410 can grow (e.g., expand the boundaries) of the first plane hypothesis to include points in the point cloud corresponding to pixels in the image of the particular element. In this way, the plane hypothesis is expanded using a single image, as compared to other systems that use time-sequential images to expand the plane hypothesis. Additionally, in various implementations, the handheld electronic device 410 can increase the confidence (or other score) of the first plane hypothesis.
[0064] In various implementations, the handheld electronic device 410 uses the object classification set to label plane hypotheses. For example, the handheld electronic device 410 generates a plane hypothesis based on a point cloud. In various implementations, a subset of the points of the point cloud corresponds to pixels in the image that correspond to a particular element of the object classification set with a particular label. Therefore, the handheld electronic device 410 can modify the plane hypothesis to include the particular label. Labeled planes provide for many different use cases of the handheld electronic device 410. In various implementations, certain CGR objects can only be placed on plane hypotheses with certain labels in the CGR environment. For example, in various implementations, a CGR vase can only be placed on a plane hypothesis labeled as table top, a CGR portrait can only be placed on a plane hypothesis labeled as wall, or a CGR furniture can only be placed on a plane hypothesis labeled as floor.
[0065] Figure 6 is a flowchart representation of a method 600 for generating a plane hypothesis according to some implementations. In various implementations, the method 600 is performed by a device (e.g., Figure 3In some implementations, method 600 is performed by a processing logic component (including hardware, firmware, software, or a combination thereof). In some implementations, method 600 is performed by a processor executing instructions (e.g., code) stored in a non-transitory computer-readable medium (e.g., a memory). Briefly, in some cases, method 600 includes: acquiring a scene image comprising a plurality of pixels; acquiring a point cloud based on the scene image and an object classification set based on the scene image; and generating a plane hypothesis based on the point cloud and the object classification set.
[0066] In block 610, method 600 begins, where a device acquires an image of a scene comprising a plurality of pixels. In various implementations, the device captures the image of the scene using a scene camera.
[0067] At box 620, method 600 continues, where the device acquires a point cloud based on the scene image. In various embodiments, the point cloud includes multiple three-dimensional points in a CGR coordinate system. In various embodiments, the CGR coordinate system is gravity-aligned so that one of the coordinates (e.g., the z coordinate) extends in the opposite direction of the gravity vector. The gravity vector can be acquired by an accelerometer of the device. In various embodiments, the point cloud is acquired using a VIO (visual inertial odometry) and / or a depth sensor. In various embodiments, the point cloud is based on an image of the scene and previous images of the scene taken from different angles to provide stereo imaging. In various embodiments, the points in the point cloud are associated with metadata, which can be a confidence level in terms of the color, texture, reflectivity, or transmittance of the point on a surface in the scene, or the position of the point on a surface in the scene.
[0068] At block 630, method 600 continues with the device generating an object classification set based on the scene image. Each element of the object classification set includes a corresponding plurality of pixels classified as a corresponding object in the scene. In various implementations, the object classification set is generated based on semantic segmentation. In various implementations, the object classification set is generated using a neural network applied to the scene image. In various implementations, the elements of the object classification set include a label indicating an object in the scene corresponding to the element (e.g., a wall, a floor, or a table).
[0069] At block 640, method 600 continues by generating a plane hypothesis based on the point cloud and the object classification set. In various implementations, the device generates the plane hypothesis by determining a subset of pixels corresponding to a particular element of the object classification set from among the points of the point cloud and generating the plane hypothesis based on the subset of the points of the point cloud. For example, in various implementations, the device applies a RANSAC plane detection algorithm to the subset of the points of the point cloud (but not to other points of the point cloud).
[0070] In various implementations, generating a plane hypothesis includes generating a first plane hypothesis based on the point cloud (e.g., using a RANSAC plane detection algorithm). The device associates the first plane hypothesis with a particular element of the object classification set. For example, the device determines that most or all points in the point cloud correspond to pixels of an image in the particular element of the object classification set. The device determines a subset of the points in the point cloud that correspond to a corresponding plurality of pixels of the particular element of the object classification set. The device updates the first plane hypothesis based on the subset of points in the point cloud (e.g., by expanding (or contracting) a boundary of the first plane hypothesis).
[0071] In various implementations, generating the plane hypothesis includes determining a confidence associated with the plane hypothesis based on the object classification set. For example, in various implementations, the device generates a first plane hypothesis comprising a first confidence based on the point cloud, and increases the first confidence in response to determining that most or all points of the point cloud of the first plane hypothesis correspond to pixels of an image that is a single element of the object classification set.
[0072] In various implementations, the device acquires a second image of the scene (e.g., at a second, later time) that includes a second plurality of pixels. The device acquires a second point cloud based on the scene image and generates a second object classification set based on the second scene image. The device updates the plane hypothesis based on the second point cloud and the second object classification set. For example, the device may update the plane to include points in the point cloud corresponding to the new location of the object (as indicated by the second object classification set) and remove points at the old location.
[0073] In various implementations, at least one element of the object classification set includes a label. Accordingly, in various implementations, the device associates the plane hypothesis with the label based on the object classification set.
[0074] In various implementations, the device associates a plane hypothesis with a specific element of an object classification set, including a label. The device detects user input corresponding to the association of a CGR object with the plane hypothesis. For example, a user may select an object from an object selection interface and move the object so that it is displayed adjacent to the plane hypothesis within the CGR coordinate system. In response to the label of the specific element meeting placement criteria, the device associates the CGR object with the plane hypothesis. In this manner, an object can only be placed on a specific type of surface in the CGR environment.
[0075] In various implementations, the device associates a plane hypothesis with a specific element of the object classification set that includes a label. In response to the label of the specific element meeting the modification criteria, the device displays the CGR object at the location of the plane hypothesis. In this manner, modifications can be applied to certain surfaces based on the label, for example, changing a floor to lava or a ceiling to sky.
[0076] Although various aspects of specific implementations within the scope of the appended claims have been described above, it should be apparent that the various features of the above-described specific implementations can be embodied in a variety of forms, and any specific structures and / or functions described above are merely illustrative. Based on this disclosure, it should be understood by those skilled in the art that the aspects described herein can be implemented independently of any other aspects, and two or more of these aspects can be combined in various ways. For example, any number of aspects set forth herein can be used to implement an apparatus and / or a method can be practiced. In addition, in addition to or different from one or more aspects set forth herein, other structures and / or functions can be used to implement such an apparatus and / or such a method can be practiced.
[0077] It will also be understood that, although the terms "first", "second" etc. may be used to describe various elements in this article, these elements should not be limited by these terms. These terms are simply used to distinguish one element from another. For example, a first node may be referred to as a second node, and similarly, a second node may be referred to as a first node, which changes the meaning of the description as long as all occurrences of the "first node" are consistently renamed and all occurrences of the "second node" are consistently renamed. Both the first node and the second node are nodes, but they are not the same node.
[0078] The terms used herein are only for describing specific implementations and are not intended to limit the claims. As used in the description of this specific implementation and the appended claims, the singular forms "a" and "the" are intended to also cover the plural forms, unless the context clearly indicates otherwise. It will also be understood that the terms "and / or" used herein refer to and cover any and all possible combinations of one or more items in the associated listed items. It will also be understood that the term "comprising" when used in this specification specifies the presence of stated features, integers, steps, operations, elements and / or parts, but does not exclude the presence or addition of one or more other features, integers, steps, operations, elements, parts, and / or their groupings.
[0079] As used herein, the term “if” may be interpreted to mean “when the precondition is true” or “when the precondition is true” or “in response to determining” or “upon determining” or “in response to detecting” that the precondition is true, depending on the context. Similarly, the phrase “if it is determined that [the precondition is true]” or “if [the precondition is true]” or “when [the precondition is true]” is to be interpreted to mean “upon determining that the precondition is true” or “in response to determining” or “upon determining” that the precondition is true or “when detecting that the precondition is true” or “in response to detecting” that the precondition is true, depending on the context.
Claims
1. A method for plane detection, comprising: acquiring an image of a scene comprising a plurality of pixels; acquiring a point cloud based on the image of the scene; generating an object classification set based on the image of the scene, each element of the object classification set comprising a respective plurality of pixels classified as a respective object in the scene; as well as Generating a plane hypothesis based on the point cloud and the object classification set, wherein generating the plane hypothesis comprises: determining a confidence score associated with the planar hypothesis based on the object classification set; increasing the confidence score associated with the plane hypothesis based on determining that at least a threshold amount of the point cloud for the plane hypothesis corresponds to pixels of the image that are in a single element of the object classification set; and The confidence score associated with the plane hypothesis is reduced based on determining that at least a threshold amount of the point cloud of the plane hypothesis corresponds to pixels of the image in a plurality of elements of the object classification set.
2. The method of claim 1 , wherein generating the plane hypothesis comprises: determining a subset of points of the point cloud corresponding to the respective plurality of pixels of a particular element of the object classification set; as well as The plane hypothesis is generated based on the subset of points of the point cloud.
3. The method of claim 1 , wherein generating the plane hypothesis comprises: generating a first plane hypothesis based on the point cloud; associating the first plane hypothesis with a particular element of the object classification set; determining a subset of points of the point cloud corresponding to the respective plurality of pixels of the particular element of the object classification set; as well as The first plane hypothesis is updated based on the subset of points of the point cloud.
4. The method according to claim 3, wherein: Updating the first plane hypothesis based on the subset of points in the point cloud includes extending a boundary of the first plane hypothesis to include additional one or more points of the subset of points in the point cloud.
5. The method according to claim 1, wherein At least one element of the object classification set further includes a label, and the method further includes: Associating the plane hypothesis with a particular element of the object classification set including a label; detecting user input corresponding to an association of a computer-generated reality object with the plane hypothesis; and In response to the label of the particular element meeting placement criteria, the computer-generated reality object is associated with the planar hypothesis.
6. The method according to claim 5, further comprising: Associating the plane hypothesis with a particular element of the object classification set including a label; as well as In response to the tag of the particular element meeting the modified criteria, a computer-generated reality object is displayed at the assumed location of the plane.
7. A method for plane detection, comprising: acquiring an image of a scene comprising a plurality of pixels; acquiring a plurality of points of a point cloud based on the image of the scene; obtaining an object classification set based on the image of the scene, wherein each element of the object classification set includes a plurality of pixels respectively associated with a corresponding object in the scene; as well as Planes within the scene are detected by identifying a subset of the plurality of points of the point cloud that correspond to particular elements of the object classification set.
8. The method according to claim 7, wherein: Each element of the object classification set is associated with a different object in the scene.
9. The method according to claim 7, wherein: Acquiring the object classification set includes generating the object classification set via semantic segmentation, wherein each element of the object classification set includes a semantic label associated with a corresponding object in the scene.
10. The method according to claim 7, wherein: Detecting the plane includes generating a plane hypothesis based on the point cloud and the object classification set.
11. The method according to claim 10, wherein: Generating the plane hypothesis includes: generating a first plane hypothesis based on the point cloud; associating the first plane hypothesis with the particular element of the object classification set; identifying the subset of the plurality of points of the point cloud based on pixels of the particular element of the object classification set; The first plane hypothesis is updated based on the subset of points of the point cloud.
12. The method according to claim 10, wherein: Generating the plane hypothesis includes: determining a confidence score associated with the planar hypothesis based on the object classification set; increasing the confidence score associated with the plane hypothesis based on determining that at least a threshold amount of the subset of the plurality of points correspond to pixels of the image that are in a single element of the object classification set; and The confidence score associated with the plane hypothesis is reduced based on determining that at least a threshold amount of the subset of the plurality of points correspond to pixels of the image in a plurality of elements of the object classification set.
13. The method according to claim 10, wherein: Generating the plane hypothesis includes: applying a random sample consensus RANSAC plane detection algorithm to the subset of the plurality of points of the point cloud; and Applying the random sample consensus RANSAC plane detection algorithm to a remaining subset of the plurality of points of the point cloud is abandoned, wherein each of the remaining subset of the plurality of points is not included in the subset of the plurality of points of the point cloud.
14. The method according to claim 7, wherein: The plurality of points of the point cloud are acquired based on VIO (Visual Inertial Odometry) and / or data from a depth sensor.
15. The method according to claim 7, wherein: Obtaining the object classification set includes generating the object classification set by applying a neural network to the image of the scene.
16. A method for plane detection, comprising: acquiring an image of a scene comprising a plurality of pixels; acquiring a plurality of points of a point cloud based on the image of the scene; obtaining an object classification based on the image of the scene, wherein the object classification corresponds to a plurality of pixels respectively associated with corresponding objects in the scene; as well as Planes within the scene are detected by identifying at least a subset of the plurality of points of the point cloud that corresponds to the object classification.
17. The method according to claim 16, wherein Obtaining the object classification includes generating the object classification via semantic segmentation, and wherein at least one element in the subset of the plurality of points of the point cloud corresponding to the object classification includes a label associated with a corresponding object in the scene.
18. The method according to claim 16, wherein Detecting the plane includes generating a plane hypothesis based on the point cloud and the object classification.
19. The method according to claim 16, wherein Obtaining the object classification includes generating the object classification by applying a neural network to the image of the scene.
Citation Information
Patent Citations
Plane detection using semantic segmentation
CN110633617B