Object detection using multiple 3D scans
By scanning multiple times under different light conditions and determining the coordinate system conversion, the 3D model in a single coordinate system is generated to solve the problems of the physical objects in the detection and tracking images under different conditions, and the accurate detection of different light conditions is achieved And track and improve the positioning and display ability of enhanced content.
Patent Information
- Application Number
- CN201910623350.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2018-07-13
- Filing Date
- 2019-07-11
- Publication Date
- 2025-01-28
- Estimated Expiration
- 2039-07-11
AI Technical Summary
The prior art is difficult to detect and track real-world physical objects depicted in images under different lighting conditions, especially when the capture and detection conditions do not match, and the objects cannot be accurately detected.
By conducting multiple scans under different conditions, use the image sensor to capture the image of the object, and by determining the coordinate system conversion between the two scans, generate the 3D model in a single coordinate system, so as to detect and track under different conditions under different conditions. Object.
It can accurately detect and track physical objects under different light conditions, provides a unified coordinate system to facilitate the positioning and display of content, and improve the detection and tracking capabilities of objects in the real environment in the real environment.
Smart Images

Figure CN110715647B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims the benefit of U.S. Provisional Application Serial No. 62 / 697,512, filed on July 13, 2018, which is incorporated herein by reference in its entirety. Technical Field
[0003] The present disclosure relates generally to detecting and tracking real-world physical objects depicted in images, and particularly to systems, methods, and devices for detecting and tracking such physical objects based on previous scans of the objects. Background Art
[0004] Various electronic devices include image sensors that capture images of real-world environments. For example, many mobile devices include image sensors that can be used to capture sequences of frames (e.g., video frames) that are presented on a display of such a device or stored for subsequent viewing. Detecting and tracking objects that appear in such frames is desirable for various applications. Such detection and tracking can be facilitated by capturing images of the object and then using these images to detect the object in subsequent images. However, when the capture conditions do not match the detection conditions, the object may not be detected and tracked. For example, if the lighting when the capture is performed is different from the lighting when the detection is performed, the object may not be detected. Summary of the invention
[0005] Various specific implementations disclosed herein include devices, systems, and methods for using multiple scans of an object under different conditions. For example, a first scan of an object can be created by moving an image sensor on a first path under a first condition (e.g., bright lighting) to capture an image of the object. Then a second scan of the object can be created by moving the image sensor on a second path under a second condition (e.g., dim lighting) to capture additional images of the object. For the first path and the second path, the starting position, movement, and end position of the image sensor may be different from each other. Therefore, the coordinate systems of the two scans may be different from each other. This is undesirable for various applications (such as enhancement). For example, if a user wants to enhance an object with enhanced content (e.g., define a text information box to be displayed above the object), it is unclear which coordinate system should be used to place the enhancement. The user should likely need to perform the cumbersome task of defining the enhancement relative to each of the multiple different coordinate systems associated with each time in the scan. A specific implementation determines a transformation that associates the scan data from multiple scans of the object with each other so as to be associated in a common coordinate system.
[0006] Some specific implementations of the present disclosure involve performing various operations on a computing device having a processor, a memory, and an image sensor to facilitate object detection using multiple 3D scans. The device uses an image sensor to obtain first scan data of a physical object (e.g., a toy building block structure) under a first condition (e.g., dim lighting). The first scan data may include images (e.g., key frames) captured from multiple image sensor positions in a first coordinate system. The device also uses the image sensor to obtain second scan data of the physical object under a second condition (e.g., bright lighting). The second condition is typically different from the first condition in one or more ways (e.g., lighting, object state, etc.). The second scan data may include images captured from multiple image sensor positions in a second coordinate system.
[0007] The device determines a transformation between a first coordinate system and a second coordinate system to facilitate object detection. In one specific implementation, the transformation is determined by matching one or more images (e.g., keyframes) of the first scan data with one or more images of the second scan data. In one specific implementation, the transformation is determined by determining an offset between a pose (e.g., position and orientation) of an image sensor associated with a first image of the first scan data and a second image of the second scan data. In one specific implementation, the transformation is determined by aligning a first point cloud associated with the first scan data and a second point cloud associated with the second scan data.
[0008] After determining the transformation, the device generates a three-dimensional (3D) model of the physical object including the first scan data and the second scan data based on the transformation (e.g., a point cloud of points associated with descriptors). In a specific implementation where the 3D model is a point cloud, the points may have descriptors based on both the first scan data and the second scan data. In a specific implementation, the 3D model merges a first point having a descriptor based on the first scan data with a second point having a descriptor based on the second scan data, for example based on a proximity of the first point to the second point.
[0009] The generated 3D model may represent both the first scan data and the second scan data in a single coordinate system. This facilitates various features, including but not limited to, for example, improved use of augmented content in a computer-generated reality (CGR) environment. In one specific implementation, the augmented content is associated with the 3D model at a position relative to a single coordinate system. Therefore, when an end user uses the 3D model to detect an object, the end user's device may obtain image data via its image sensor, use the 3D model and the image data to detect the physical object, and align the 3D model with the physical object using a single coordinate system. The process may involve matching the image data with a point cloud descriptor of the 3D model or determining the current posture of the image sensor relative to the 3D model. The end user's device may display a CGR environment depicting a physical object based on the image data and the augmented content. For example, the augmented content may be positioned based on aligning the 3D model with the physical object using a single coordinate system.
[0010] Implementations disclosed herein also provide user interface features that facilitate capturing multiple scans to create a 3D model representing multiple different conditions. In one implementation, this involves enabling a user to create a 3D scan of an object under one condition and presenting a notification requesting the user to create another scan or providing the user with an option to create another scan, enabling the user to create an additional scan under another condition and automatically determining a transformation between the coordinate systems for the first scan and the second scan and generating a 3D model using both the scan and the transformation.
[0011] 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 execution of any of the methods described herein. According to some specific implementations, a non-volatile computer-readable storage medium stores instructions that, when executed by one or more processors of the device, cause the device to perform or cause the execution of any of the methods described herein. According to some specific implementations, a device includes one or more processors, non-volatile memory, an image sensor, and a device for performing or causing the execution of any of the methods described herein. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] So that the present disclosure may be understood by those of ordinary skill in the art, a more detailed description may be obtained with reference to aspects of some exemplary implementations, some of which are illustrated in the accompanying drawings.
[0013] Figure 1 is a block diagram illustrating exemplary physical objects in a real-world environment according to some implementations.
[0014] Figure 2According to some specific implementation Figure 1 A block diagram of a mobile device with an exemplary physical object computer generated reality (CGR) environment.
[0015] Figure 3 is a diagram showing some specific implementations Figure 1 Block diagram of a first scan of an exemplary physical object.
[0016] Figure 4 is a diagram showing some specific implementations Figure 1 Block diagram of a second scan of an exemplary physical object.
[0017] Figure 5 is a diagram showing the Figure 3 The first scan and Figure 4 Block diagram of the difference in the path of the image sensor during the second scan.
[0018] Figure 6 is a diagram showing a method based on some specific implementations Figure 3 Block diagram of an exemplary point cloud generated by the first scan of .
[0019] Figure 7 is a diagram showing a method based on some specific implementations Figure 4 Block diagram of an exemplary point cloud generated by the second scan of .
[0020] Figure 8 is a diagram showing a conversion based on some specific implementations. Figure 3 The first scan and Figure 4 Block diagram of an exemplary point cloud generated by the second scan of .
[0021] Fig. 9 is a block diagram illustrating exemplary components of an apparatus for generating a 3D model of a physical object and detecting the physical object according to some implementations.
[0022] Fig.10 A flowchart representation of a method for generating a 3D model including scan data from multiple scans based on a determined transformation according to some implementations.
[0023] As is common practice, the various features shown in the drawings may not be drawn to scale. Therefore, the sizes of the various features may be arbitrarily expanded or reduced for clarity. In addition, some drawings may not depict all components of a given system, method, or device. Finally, throughout the specification and drawings, similar reference numerals may be used to represent similar features. DETAILED DESCRIPTION
[0024] Many details are described in order to provide a thorough understanding of the example implementations shown in the accompanying drawings. However, the accompanying drawings only illustrate some example aspects of the present disclosure and should not be considered limiting. One of ordinary skill in the art will appreciate that other effective aspects 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.
[0025] Figure 1 1 is a block diagram illustrating an exemplary physical object 105 in a real-world environment 100. Although this example and other examples discussed herein illustrate a 3D model of a single object 105, the techniques disclosed herein are also applicable to multiple objects and entire scenes and other real-world environments. As used herein, the phrase "physical object" refers to any type of item or combination of items in the real world, including but not limited to building blocks, toys, figurines, furniture, doors, buildings, pictures, paintings, sculptures, lamps, signs, tables, floors, walls, desks, bodies of water, human faces, human hands, human hair, other human body parts, entire human bodies, animals or other organisms, clothing, paper, magazines, books, vehicles, machines or other man-made objects, and any other natural or man-made item or group of items that exist in the real world and can be recognized and modeled.
[0026] Figure 2 Yes Display Figure 1 1 is a block diagram of a mobile device 205 for capturing a computer generated reality (CGR) environment 200 of an exemplary physical object 105. In this example, the device 205 captures one or more images of the physical object 105 and compares those images to a 3D model (e.g., previously captured keyframes, point cloud values, etc.) to detect and track the presence of the real-world object 105. The device 205 can determine the pose (e.g., position and orientation) of the physical object 105, for example, using RGB-D information, infrared camera-based depth detection, and other such techniques. Thus, after detecting the real-world object and determining its pose, the device 205 can align the 3D model of the object with the physical object in a coordinate system corresponding to the real-world space.
[0027] Given this alignment, the device is able to provide a CGR environment 200 that combines aspects of the real-world environment with augmented content. In this example, the CGR environment 200 includes a description 210 of the physical object 105 and augmented content 215, the augmented content 215 including a text bubble and the text phrase "IT'S MAGNETIC". The augmented content 215 is positioned relative to the description 210 of the physical object 105 based on the alignment of the physical object 105 with the 3D model. For example, the CGR environment 200 creator may have specified that the augmented content 215 is to be displayed at a location determined by a fixed point at the center of the surface of the 3D model of the physical object 105. Once the 3D model is aligned with the physical object 105, the device 205 determines the appropriate location for the augmented content 215 and generates the CGR environment 200 for display.
[0028] The specific implementations disclosed herein enable display of Figure 2 The enhancements and other features shown are present even in cases where the 3D model includes scan data from different scans of the physical object 105 that are associated with different coordinate systems. For example, a first scan of the physical object 105 may have been taken under dim lighting conditions, and a second scan of the physical object 105 may have been taken under bright lighting conditions and associated with a different coordinate system.
[0029] The coordinate system is not aligned Figure 3 and Figure 4 Shown in. Figure 3 It is shown Figure 1 A block diagram of a first scan 300 of an exemplary physical object 105, and Figure 4 It is shown Figure 1 A block diagram of a second scan 400 of an exemplary physical object 105 is shown. Figure 3 In the example, the first scan 300 includes moving the device (e.g., Figure 2205) while capturing an image of the physical object 105. The first path 300 includes the device at multiple image sensor poses 310a, 310b, 310c, 310d, 310e, 310f, 310g, 310i, 310j from an initial pose 310a at the beginning of image recording to a final pose 310j at the end of recording. During the first scan 300, the device can track its own pose (e.g., via tracking position and orientation changes of one or more motion sensors on the device, inertial data, etc.). Therefore, the relative position of the data in the first 3D coordinate system is known for the images captured at each of the poses 310a, 310b, 310c, 310d, 310e, 310f, 310g, 310i, 310j. The image data from these images can be combined to generate a first 3D model of the physical object based on these known poses (e.g., Figure 6 ).
[0030] exist Figure 4 , the second scan 400 includes scanning performed while capturing images of the physical object 105 while moving the device along the second path 415a-i. The second path 400 includes the device at multiple image sensor poses 410a, 410b, 410c, 410d, 410e, 410f, 410g, 410i, 410j from an initial pose 410a at the beginning of image recording to a final pose 410j at the end of recording. During the second scan 400, the device can track its own pose, so the relative position of the data in the second 3D coordinate system is known for the images captured at each of the poses 410a, 410b, 410c, 410d, 410e, 410f, 410g, 410i, 410j. The image data from these images can be combined to generate a second 3D model of the physical object based on these known poses (e.g., Figure 7 ). It should be noted that the pose determined for each of the scans may be defined relative to a coordinate system (e.g., having an origin and an orientation) selected for that particular scan, and that the coordinate system used for each scan may be different. Thus, even if the real-world location at which scans 300 and 400 were obtained is the same, the determined poses 310a-j and 410a-j may be different because they are defined relative to different coordinate systems.
[0031] Figure 5 It shows that Figure 3 The first scan and Figure 4A block diagram of the difference in the path of the image sensor during the second scan of . Between the first scan and the second scan, the device may generally be unable to accurately track its own posture changes. In some cases, the first scan and the second scan are separated by minutes, days, weeks, or even longer. In any case, the device cannot associate the image sensor posture position of the first scan 300 with the image sensor posture position of the second scan 400. Therefore, the technology disclosed herein addresses this deficiency by determining a transformation that associates the first scan and the second scan and providing a practical and efficient way to associate the 3D models developed from these scans with each other in a single common coordinate system.
[0032] Figure 6 and Figure 7 The 3D model generated from the two scans is shown. Figure 6 is a diagram showing a method based on some specific implementations Figure 3 A block diagram of an exemplary point cloud 600 generated by a first scan of Figure 7 It shows that based on Figure 4 Block diagram of an exemplary point cloud 700 generated by a second scan of FIG.
[0033] Figure 8 is a diagram showing a conversion based on some specific implementations. Figure 3 The first scan and Figure 4 Block diagram of an exemplary point cloud generated from a second scan of . In this example, a transformation is determined to align at least one image (e.g., a keyframe) from each of the scans. The transformation may specify a positional relationship (e.g., rotation r and translation t) between the image sensor camera poses associated with the keyframes. This allows all keyframes and associated 3D models (e.g., point clouds) in the two scans to be aligned with each other using a single coordinate system. Figure 8 In the example of , point clouds 600, 700 are aligned with each other using the coordinate system of the first scan. In other specific implementations, the coordinate system of the second scan or another common coordinate system is used.
[0034] Figure 8Point cloud 800 may include points having descriptors from multiple scans and therefore having multiple different conditions. For example, a first scan may include color values for points determined based on a scan of the physical object conducted with the blinds open to allow bright lighting conditions, while a second scan may include color values for points determined based on a scan of the physical object conducted with the blinds closed or after the sun has set to provide relatively dim lighting conditions. Similarly, point cloud 800 may include points having descriptors from multiple scans reflecting different configurations or states of the physical object. For example, a physical object may have open and closed panels, and points determined by a first scan may represent the physical object with the closed panels, and points determined by a second scan may represent the physical object with the open panels.
[0035] In order to align the scans, at least one image (e.g., a keyframe) from each of the scans can be used to determine the transformation. In some specific implementations, one or more of the same features are detected in the keyframes of the first scan and the keyframes of the second scan. The 3D spatial positions of these same features in the corresponding coordinate systems are determined and are related to each other in the common coordinate system. The feature positions are matched to determine the relative pose of the image sensor for the corresponding keyframes. In other words, by determining the appropriate transformation (e.g., rotation r, translation t) used to align the same features between the two coordinate systems, the system is able to determine the appropriate transformation between the two coordinate systems as a whole. Therefore, the image sensor poses of different scans and the 3D model (e.g., point cloud) can be easily aligned with each other in the common coordinate system using this transformation.
[0036] In some embodiments, the 3D model of the second scan is added to the 3D model of the first scan, for example, by adding additional points, merging points, etc. Figure 8 As shown. Thus, in this example, all of the 3D model data is included in a single model that uses the coordinate system of the first scan. The combined 3D model can then be used to detect physical objects in subsequently acquired images. Because the combined 3D model has points from two scans and thus from two different conditions (e.g., bright lighting and dim lighting) or configurations, it is better able to detect physical objects in subsequently acquired images under either of these conditions. Furthermore, the additional data can make the 3D model generally more robust (e.g., better able to detect physical objects) even if the scans are not associated with different conditions or configurations.
[0037] In some implementations, the device matches point cloud features between multiple scans to determine the transformation. In some implementations, a combination of keyframes and point cloud features is used to determine the transformation. In some implementations, a machine learning model (e.g., a trained neural network) is applied to match image or point cloud features or otherwise determine the transformation.
[0038] In some implementations, a single feature match (e.g., one feature from one keyframe of each scan) is used to determine the transformation. In some implementations, a multi-feature match compares multiple features in a single keyframe of a first scan with matching features in a single keyframe of a second scan to determine the transformation. In some implementations, multiple features in multiple keyframes (e.g., two keyframes of each scan, all keyframes of each scan, etc.) are used to determine the transformation.
[0039] In some implementations, combining 3D models (e.g., point clouds) involves merging points from different models from different scans. For example, the same physical point may be represented by two different descriptors from two different scans. The system may estimate that the two points should be treated as a single point based on spatial proximity or descriptor similarity. For example, the system may merge / concatenate points that are separated from each other in 3D space by less than a minimum threshold distance.
[0040] Note that although Figures 1 to 8 The use of two scans is shown, but the techniques disclosed herein are also applicable to combining data from any number of scans. These techniques are equally useful in many contexts. For example, the techniques can facilitate the creation of a CGR environment that includes enhancements (e.g., augmented content) positioned relative to a physical object. A content creator can create a 3D model of a physical object using multiple scans for multiple conditions, define the enhancements positioned relative to the content in a single coordinate system, and have confidence that the enhancements will be displayed in the proper position relative to the model, regardless of what condition of the physical object is detected by an end user during subsequent use of the CGR environment.
[0041] The device used by the content creator (e.g., for image capture and 3D model creation) and the end user (e.g., for object detection using a 3D model) can be any of a variety of devices including a processor, a non-transitory computer-readable medium, and an image sensor. In some implementations, the device is a head mounted device (HMD) worn by the content creator or the end user. The HMD may surround the field of view of its user. The HMD may include one or more CGR screens or other displays configured to display a CGR environment. In some implementations, the HMD includes a screen or other display for displaying a CGR environment in the user's field of view. In some implementations, the HMD is worn in such a way that the screen is positioned to display a CGR environment within the user's field of view. In some implementations, the device is a handheld electronic device (e.g., a smart phone or tablet), a laptop computer, or a desktop computer, which is configured to create a 3D model of a physical object and facilitate the creation of a CGR environment, such as for a content creator, or presenting a CGR environment to an end user. In some implementations, the device is a CGR cabin, housing, or room configured to present a CGR environment in which the end user does not wear or hold the device.
[0042] Fig. 9 is a block diagram illustrating exemplary components of a device for generating a 3D model of a physical object and detecting the physical object according to some implementations. In various implementations, these functions may be separated into one or more independent devices. Although some 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. To this end, as a non-limiting example, in some specific implementations, the device 205 includes one or more processing units 902 (e.g., microprocessors, ASICs, FPGAs, GPUs, CPUs, processing cores, etc.), one or more input / output (I / O) devices and sensors 906, one or more communication interfaces 908 (e.g., USB, FIREWIRE, THUNDERBOLT, IEEE 802.3x, IEEE 802.11x, IEEE802.16x, GSM, CDMA, TDMA, GPS, IR, BLUETOOTH, ZIGBEE, SPI, I2C and / or similar types of interfaces), one or more programming (e.g., I / O) interfaces 910, one or more displays 912, one or more internal or external-facing image sensors 914, a memory 920, and one or more communication buses 904 for interconnecting these components and various other components.
[0043] In some implementations, the one or more communication buses 904 include circuit systems that interconnect and control communications between system components. In some implementations, the one or more I / O devices and sensors 906 include at least one of a touch screen, soft keys, keyboards, virtual keyboards, buttons, knobs, joysticks, switches, dials, inertial measurement units (IMUs), accelerometers, magnetometers, gyroscopes, thermometers, one or more physiological sensors (e.g., blood pressure monitors, heart rate monitors, blood oxygen sensors, blood glucose sensors, etc.), one or more microphones, one or more speakers, a haptic engine, or one or more depth sensors (e.g., structured light, time of flight, etc.). In some implementations, movement, rotation, or position of the device 205 detected by the one or more I / O devices and sensors 906 provides input to the device 205.
[0044] In some implementations, one or more displays 912 are configured to present CGR content. In some implementations, one or more displays 912 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) or similar display types. In some implementations, one or more displays 912 correspond to diffraction, reflection, polarization, holographic, etc. waveguide displays. For example, device 205 includes a single display. For another example, device 205 includes a display for each eye. In some implementations, one or more displays 912 can present CGR content.
[0045] In some implementations, the one or more image sensor systems 914 are configured to obtain image data corresponding to at least a portion of a local scene of the device 205. The one or more image sensor systems 914 can include one or more RGB cameras (e.g., with complementary metal oxide semiconductor (CMOS) image sensors or charge coupled device (CCD) image sensors), RGB-D cameras, monochrome cameras, IR cameras, or event-based cameras, etc. In various implementations, the one or more image sensor systems 914 also include an illumination source that emits light, such as a flash.
[0046] The memory 920 includes a high-speed random access memory, such as DRAM, SRAM, DDR RAM or other random access solid-state memory devices. In some specific implementations, the memory 920 includes a 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. The memory 920 optionally includes one or more storage devices located away from the one or more processing units 902. The memory 920 includes a non-transitory computer-readable storage medium. In some specific implementations, the memory 920 or the non-transitory computer-readable storage medium of the memory 920 stores the following programs, modules and data structures or their subsets, including an optional operating system module 930 and one or more application programs 940.
[0047] The operating system 930 includes processes for handling various basic system services and for performing hardware-related tasks. In some specific implementations, the operating system 930 includes built-in CGR functionality, for example, including a CGR environment creation feature or a CGR environment viewer, which is configured to be called from one or more applications 940 to create or display a CGR environment within a user interface. The application 940 includes a scanning unit 942, which is configured to create scans of physical objects and create 3D models of the physical objects based on the scans. The application 940 also includes a detection unit 844, which is configured to use these 3D models to detect physical objects in subsequently obtained images, such as during the CGR environment.
[0048] Fig. 9 It is more of a functional description of various features present in a particular implementation, as opposed to a schematic diagram of the implementations 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, Fig. 9 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 units 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, it depends in part on the specific combination of hardware, software, or firmware selected for a specific implementation.
[0049] Fig.10 1 is a flowchart representation of a method for generating a 3D model including scan data from multiple scans based on a determined transformation according to some specific implementations. In some specific implementations, method 1000 is performed by a device (e.g., Figure 2 and Fig. 9The method 1000 may be performed at a mobile device, an HMD, a desktop computer, a laptop computer, or a server device. In some implementations, the method 1000 is performed by a processing logic component (including hardware, firmware, software, or a combination thereof). In some implementations, the method 1000 is performed by a processor executing code stored in a non-transitory computer-readable medium (e.g., a memory).
[0050] At block 1010, method 1000 uses an image sensor to obtain first scan data of a physical object under a first condition. Such first scan data may be obtained using an image sensor such as a camera. In some implementations, the first scan data includes a sequence of frames acquired successively or a sequence of frames in a group of images. The image data may include pixel data identifying a color, intensity, or other visual attribute captured by the image sensor. Some of the captured multiple frames may be identified as key frames, for example, using a key frame selection technique that identifies key frames based on criteria such as time since the last key frame, distance change since the last key frame, and the like.
[0051] At block 1020, method 1000 uses the image sensor to obtain a second scan data of the physical object under a second condition. Obtaining the second scan is similar to obtaining the first scan, however, the position of the image sensor during the scan may be different, and the conditions of the environment or the physical object may be different. For example, the first condition and the second condition may be different lighting conditions or different object states of a portion of the physical object (e.g., different component positions / configurations).
[0052] Some embodiments provide a user interface that facilitates obtaining first scan data, second scan data, and additional scan data (if applicable). For example, in some embodiments, the device is configured to request a second scan based on testing the first scan data (e.g., to determine whether the first scan data is sufficient to represent a physical object or various conditions). If not, the device presents a user interface element that provides an option (or other instruction) for performing a second scan. After receiving the second scan data, the device checks again whether the existing scan data is sufficient, and if not, prompts the user to obtain additional scan data, and so on until sufficient scan data is obtained. Whether additional scan data is desired / needed can be determined based on estimating the lighting associated with the scan data, such as using an ambient light sensor to determine based on pixel values in the scan data, or using any other feasible technology. In some embodiments, criteria for suggesting / requiring additional scan data are predetermined. In other embodiments, criteria for suggesting / requiring additional scan data are specified by the user, such as by a content creator based on the user's preferences or expected end-user conditions.
[0053] At box 1030, method 1000 determines a transformation between the first coordinate system and the second coordinate system. In some implementations, the transformation is determined by matching an image (e.g., a keyframe) of the first scan data with an image (e.g., a corresponding keyframe) of the second scan data. In some implementations, the transformation is determined by matching multiple images of the first scan data with multiple images of the second scan data. In some implementations, the transformation is determined by determining an offset between the pose (e.g., position and orientation) of an image sensor associated with a first image of the first scan data and a second image of the second scan data. In some implementations, determining the transformation involves minimization or other optimization processes. For example, the device may select a transformation that aligns the keyframes in a manner that minimizes the difference between pixels of a physical object in the keyframe. In some implementations, the transformation is determined by aligning a first point cloud associated with the first scan data and a second point cloud associated with the second scan data. In some implementations, for example, in the case of more than two scans, a transformation that aligns more than two coordinate systems is determined.
[0054] At block 1040, method 1000 generates a 3D model of the physical object including the first scan data and the second scan data based on the conversion. The 3D model may be a point cloud of points associated with descriptors. The point cloud may include points having descriptors based on the first scan data and points having descriptors based on the second scan data. Generating such a point cloud may involve, for example, merging a first point having a descriptor based on the first scan data with a second point having a descriptor based on the second scan data based on proximity of the first point to the second point.
[0055] The generated 3D model may represent both the first scan data and the second scan data in a single coordinate system. This enables manually or automatically associating the augmented content with the 3D model at a position relative to the single coordinate system to create a CGR environment. When the end user views the CGR environment, the augmented content is correctly positioned. In some specific implementations, the end user's device obtains image data via an image sensor (e.g., around the end user's real world), uses the 3D model and the image data to detect physical objects, and aligns the 3D model with the physical object using a single coordinate system. Detecting physical objects may involve matching the image data with a point cloud descriptor of the 3D model or determining the current posture of the image sensor relative to the 3D model. The end user's device can then display a CGR environment depicting the physical object based on the image data and the augmented content. The augmented content is positioned based on aligning the 3D model with the physical object using a single coordinate system.
[0056] A computer generated reality (CGR) environment refers to a fully or partially simulated environment that people sense and / or interact with via electronic systems. In CGR, a subset of a person's physical movements, or representations thereof, are 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 complies with at least one law of physics. For example, a CGR system may detect a person's head turn, and in response, adjust the graphical content and sound field presented to the person in a manner similar to the way such views and sounds should 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 movement (e.g., voice commands).
[0057] A person may sense and / or interact with a CGR object using any of their senses, including vision, hearing, touch, taste, and smell. For example, a person may sense and / or interact with an audio object that creates a 3D or spatial audio environment that provides a perception of a point audio source in 3D space. As another example, an audio object may enable audio transparency that selectively introduces ambient sounds from the physical environment with or without computer-generated audio. In some CGR environments, a person may sense and / or interact only with an audio object.
[0058] Examples of CGR include virtual reality and mixed reality. A virtual reality (VR) environment refers to a simulated environment designed to be based entirely on computer-generated sensory input to one or more senses. A VR environment includes virtual objects that a person can sense and / or interact with. For example, trees, buildings, and computer-generated images representing avatars of people are examples of virtual objects. A person can sense and / or interact with virtual objects in a VR environment through a simulation of the person's presence within the computer-generated environment, and / or through a simulation of a subset of the person's physical movements within the computer-generated environment.
[0059] In contrast to VR environments, which are designed to be based entirely on computer-generated sensory input, a mixed reality (MR) environment refers to a simulated environment 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 end, but not including both ends.
[0060] In some MR environments, computer-generated sensory inputs may respond to changes in sensory inputs from the physical environment. Additionally, some electronic systems used to render the MR environment may track 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 may cause motion to make virtual trees appear stationary relative to the physical ground.
[0061] Examples of mixed reality include augmented reality and augmented virtuality. 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 virtual objects superimposed on a physical environment. Alternatively, the system may have an opaque display and one or more imaging sensors that capture images or videos of a physical environment that are representations of the physical environment. The system combines the image or video with the virtual object and presents the composition on an opaque display. People use the system to indirectly view the physical environment via an image or video of the physical environment and perceive 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 a "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 an AR environment on an opaque display. Further alternatively, the system may have a projection system that projects virtual objects into a physical environment, for example as a hologram or on a physical surface, so that a person using the system perceives the virtual objects superimposed on the physical environment.
[0062] 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 a pass-through video, the system may transform one or more sensor images to apply a selected 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 may be transformed by graphically modifying (e.g., enlarging) portions thereof, such that the modified portions may be representative but not realistic versions of the original captured images. For another example, a representation of a physical environment may be transformed by graphically eliminating or blurring portions thereof.
[0063] An augmented virtual (AV) environment refers to a simulated environment in which a virtual or computer-generated environment is combined with one or more sensory inputs from a physical environment. The sensory input may be a representation of one or more features of the physical environment. For example, an AV park may have virtual trees and virtual buildings, but the faces of the characters are realistically reproduced from images taken of real people. For another example, a virtual object may take the shape or color of a physical object imaged by one or more imaging sensors. For another example, a virtual object may take a shadow that conforms to the position of the sun in the physical environment.
[0064] 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, head-up displays (HUDs), vehicle windshields with integrated display capabilities, windows with integrated display capabilities, displays formed as lenses designed to be placed on people'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), smart phones, 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 smart phone). A head-mounted system can incorporate one or more imaging sensors for capturing images or videos of a physical environment, and / or one or more microphones for capturing audio of a physical environment. Instead of an opaque display, a head-mounted system can have a transparent or translucent display. A transparent or translucent display can have a medium through which light representing an image is directed to a person's eyes. The display can utilize digital light projection, OLED, LED, uLED, silicon-based liquid crystal, laser scanning light source, or any combination of these technologies. The medium can be an optical waveguide, a hologram medium, an optical combiner, an optical reflector, or any combination thereof. In one embodiment, a transparent or translucent display can be configured to selectively become opaque. A projection-based system can employ retinal projection technology that projects a graphic image onto a person's retina. The projection system can also be configured to project a virtual object into a physical environment, such as a hologram or onto a physical surface.
[0065] Numerous specific details are set forth herein to provide a comprehensive understanding of the claimed subject matter. However, those skilled in the art will appreciate that the claimed subject matter may be practiced without these specific details. In other instances, methods, devices, or systems that should be known to those of ordinary skill are not described in detail so as not to obscure the claimed subject matter.
[0066] Unless otherwise specifically noted, it should be understood that throughout the specification, discussions utilizing terms such as "process," "compute," "calculate," "determine," and "identify" refer to the actions or processes of a computing device, such as one or more computers or similar electronic computing devices, that manipulate or transform data represented as physical electronic or magnetic quantities within a memory, register, or other information storage device, transmission device, or display device of a computing platform.
[0067] The one or more systems discussed herein are not limited to any particular hardware architecture or configuration. A computing device may include any suitable arrangement of components that provide results conditioned on one or more inputs. Suitable computing devices include multi-purpose microprocessor-based computer systems that access stored software that programs or configures the computing system from a general-purpose computing device to a dedicated computing device that implements one or more specific implementations of the disclosed subject matter. Any suitable programming, scripting, or other type of language or combination of languages may be used to implement the teachings contained herein in software for programming or configuring a computing device.
[0068] The specific implementation of the method disclosed herein can be performed in the operation of such a computing device. The order of the boxes presented in the above examples can be changed, for example, the boxes can be reordered, combined or divided into sub-boxes. Some boxes or processes can be executed in parallel.
[0069] The use of "suitable for" or "configured to" herein is meant to be open and inclusive language that does not exclude devices that are suitable for or configured to perform additional tasks or steps. In addition, the use of "based on" is meant to be open and inclusive, as a process, step, calculation, or other action "based on" one or more of the stated conditions or values may in practice be based on additional conditions or values beyond those stated. The headings, lists, and numbers included herein are for ease of explanation only and are not intended to be limiting.
[0070] 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 only used to distinguish one element from another element. 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.
[0071] 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 of "a" and "the" are intended to also cover the plural forms, unless the context clearly indicates otherwise. It will also be understood that the term "and / or" used herein refers to and covers 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 or parts, but does not exclude the presence or addition of one or more other features, integers, steps, operations, elements, parts or their groupings.
[0072] As used herein, the term “if” may be interpreted to mean “when the antecedent is true” or “when the antecedent is true” or “in response to determining” or “upon determining” or “in response to detecting” that the antecedent is true, depending on the context. Similarly, the phrase “if it is determined that [the antecedent is true]” or “if [the antecedent is true]” or “when [the antecedent is true]” is interpreted to mean “upon determining that the antecedent is true” or “in response to determining” or “upon determining” that the antecedent is true or “when detecting that the antecedent is true” or “in response to detecting” that the antecedent is true, depending on the context.
[0073] The foregoing description and summary should be understood to be illustrative and exemplary in every aspect, rather than restrictive, and the scope of the invention disclosed herein is determined not only by the detailed description of the exemplary specific implementations, but by the full breadth allowed by the patent law. It should be understood that the specific implementations shown and described herein are only illustrative of the principles of the invention, and that various modifications can be implemented by those skilled in the art without departing from the scope and essence of the invention.
Claims
1. A method comprising: At a device comprising a processor, a computer readable storage medium, and an image sensor: obtaining, using the image sensor, first scan data of a physical object under a first condition, the first scan data comprising images from a plurality of image sensor positions defined in a first coordinate system; obtaining, using the image sensor, second scan data of the physical object under a second condition, the second condition being different from the first condition, the second scan data comprising images from a plurality of image sensor positions defined in a second coordinate system; determining, via the processor, a transformation between the first coordinate system and the second coordinate system, wherein determining the transformation comprises determining an offset between a pose of the image sensor associated with a first image of the first scan data and a second image of the second scan data; as well as generating a three-dimensional (3D) model of the physical object based on the first scan data, the second scan data, and the transformation, The 3D model is a point cloud of points associated with descriptors. 2 . The method of claim 1 , wherein determining the transformation comprises matching the first image of the first scan data with the second image of the second scan data. 3 . The method of claim 1 , wherein determining the transformation comprises matching a plurality of images of the first scan data with a plurality of images of the second scan data. The method of claim 1 , wherein determining the transformation comprises aligning a first point cloud associated with the first scan data and a second point cloud associated with the second scan data. The method of claim 1 , wherein the point cloud includes points having descriptors based on the first scan data and points having descriptors based on the second scan data. 6 . The method of claim 1 , wherein generating the 3D model comprises merging a first point having a descriptor based on the first scan data with a second point having a descriptor based on the second scan data. 7 . The method of claim 6 , further comprising determining to merge the first point and the second point based on proximity of the first point to the second point. 8 . The method of claim 1 , wherein generating the 3D model comprises representing the first scan data and the second scan data in a single coordinate system. 9 . The method of claim 8 , further comprising associating augmented content with the 3D model at a position relative to the single coordinate system.
10. The method according to claim 1, further comprising: obtaining image data via the image sensor; detecting the physical object using the 3D model and the image data; as well as The 3D model is aligned with the physical object using a single coordinate system. The method of claim 10 , wherein detecting the physical object comprises matching the image data with a point cloud descriptor of the 3D model. 12 . The method of claim 10 , wherein detecting the physical object comprises determining a current pose of the image sensor relative to the 3D model.
13. The method of claim 10, further comprising displaying a computer generated reality (CGR) environment describing the physical object based on the image data and augmented content, wherein the augmented content is positioned based on aligning the 3D model with the physical object using the single coordinate system. The method of claim 1 , wherein the first condition and the second condition are different lighting conditions.
15. The method of claim 1, wherein the first condition and the second condition comprise different object states of an object in the physical object.
16. The method of claim 1, further comprising determining to request a second scan based on testing the first scan data.
17. A system comprising: a non-transitory computer-readable storage medium; Image sensor; and one or more processors coupled to the non-transitory computer-readable storage medium, wherein the non-transitory computer-readable storage medium includes program instructions that, when executed on the one or more processors, cause the system to perform operations including: obtaining, using the image sensor, first scan data of a physical object under a first condition, the first scan data comprising images from a plurality of image sensor positions defined in a first coordinate system; obtaining, using the image sensor, second scan data of the physical object under a second condition, the second condition being different from the first condition, the second scan data comprising images from a plurality of image sensor positions defined in a second coordinate system; determining, via the processor, a transformation between the first coordinate system and the second coordinate system, wherein determining the transformation comprises determining an offset between a pose of the image sensor associated with a first image of the first scan data and a second image of the second scan data; as well as generating a three-dimensional (3D) model of the physical object based on the first scan data, the second scan data, and the transformation, The 3D model is a point cloud of points associated with descriptors.
18. A non-transitory computer-readable storage medium storing program instructions executable on a computer to perform operations comprising: obtaining, using an image sensor, first scan data of a physical object under a first condition, the first scan data comprising images from a plurality of image sensor positions defined in a first coordinate system; obtaining, using the image sensor, second scan data of the physical object under a second condition, the second condition being different from the first condition, the second scan data comprising images from a plurality of image sensor positions defined in a second coordinate system; determining, via a processor, a transformation between the first coordinate system and the second coordinate system, wherein determining the transformation comprises determining an offset between a pose of the image sensor associated with a first image of the first scan data and a second image of the second scan data; as well as generating a three-dimensional (3D) model of the physical object based on the first scan data, the second scan data, and the transformation, The 3D model is a point cloud of points associated with descriptors.
Citation Information
Patent Citations
Thermal state on-site detection method for large high-temperature forging
CN102003938A
Three-dimensional imaging measurement system combining planar array imaging with laser scanning
CN102042825A
Vehicle-mounted road spectrum testing system based on surface structured light
CN101825444A
Method for experimental teaching of cotton plant type design based on AR mobile phone
CN108133654A