Methods, devices, and computer program products for checking environment acceptability for 3D scanning

Methods of determining whether an environment is suitable or acceptable for performing a three-dimensional (3D) scan are provided. The methods may include performing one or more checks on captured image data of the environment, wherein performing each of the one or more checks comprises determining whether the environment satisfies a respective criterion. The method may further include determining that the environment is suitable or unsuitable for performing the 3D scan based on a result of each performed check. Determining that the environment is suitable for performing the 3D scan may include determining that the environment satisfies each of the respective criteria of the performed one or more checks. Determining that the environment is unsuitable for performing the 3D scan may include determining that the environment does not satisfy at least one criterion of the performed one or more checks. Related devices and computer program products are also provided.

CROSS REFERENCE TO RELATED APPLICATION

This application is a 35 U.S.C. § 371 national stage application of PCT International Application No. PCT/US2017/049603, filed on Aug. 31, 2017, the content of which is incorporated herein by reference in its entirety. The above-referenced PCT International Application was published in the English language as International Publication No. WO 2019/045727 A1 on Mar. 7, 2019.

FIELD

The present disclosure relates to image processing, and more particularly, to methods and devices for three-dimensional (3D) modeling.

BACKGROUND

Three-dimensional (3D) modeling may be used to create a representation of an object for use in a variety of applications, such as augmented reality, 3D printing, 3D model development, and so on. A 3D model may be defined by a collection of points in 3D space connected by various geometric entities such as triangles, lines, curved surfaces, or the like.

One potential way to generate a 3D model of an object is via 3D scanning of the object. Although there are various methods to perform 3D scanning, one area of potential growth and development includes capturing a set of images by an image capture device. A collection of points in 3D space may be determined from corresponding feature points in the set of images. A mesh representation (e.g., a collection of vertices, edges, and faces representing a “net” of interconnected primitive shapes, such as triangles) that defines the shape of the object in three dimensions may be generated from the collection of points. Refinements to the mesh representation may be performed to further define details, and the resulting mesh may be textured to apply color and shading. This process may result in a 3D model.

SUMMARY

The inventors of the present application have recognized that the physical environment in which a 3D scan of an object (e.g., in which the set of images are captured) is an important aspect in determining the success and/or quality of the 3D model that results from the processing of the set of images. For example, a 3D scan conducted in an inappropriately-lit environment (e.g., too much light, not enough light, and/or inconsistent light) may be less successful in capturing data or details of the object than a 3D scan conducted in an appropriately-lit environment.

3D scanning is a computationally intensive endeavor, and efficiencies may be realized by performing a 3D scanning process more frequently where an environment in which the scan is to occur is suitable or acceptable, and less frequently where an environment is which the scan is to occur is unsuitable or unacceptable. Satisfaction in the 3D scanning equipment and/or 3D scanning process will also be increased with a greater ratio of suitable environment scans relative to unsuitable environment scans. Frequently, the environment variables that partially determine whether an acceptable 3D scan is possible are controllable by a user. For example, an amount of light in the environment is often adjustable, and an amount of light may be increased (e.g., by turning on a lamp or overhead lighting device) or decreased (e.g., by closing a window shade or curtain).

Therefore, to address these and other technical problems, the present disclosure provides devices, computer program products, and methods for checking whether an environment in which a 3D scan is to be performed is an acceptable environment. For example, the methods provided herein include a method of determining whether an environment is acceptable for performing a three-dimensional (3D) scan. The method may include performing one or more checks on captured image data of the environment. Performing each of the one or more checks on captured image data of the environment may include determining whether a condition exists in the environment satisfies a respective criteria that renders the environment unsuitable for performing the 3D scan. The method may further include determining that the environment is suitable or unsuitable for performing the 3D scan based on a result of each performed check. Determining that the environment is suitable for performing the 3D scan comprises determining that the environment satisfies each of the respective criteria of the performed one or more checks, and determining that the environment is unsuitable for performing the 3D scan comprises determining that the environment does not satisfy at least one criterion of the performed one or more checks.

In some embodiments, the method may also include that a first check of the one or more checks comprises comparing a first light level of the captured image data and a first threshold. In some embodiments, the method may also include that a second check of the one or more checks comprises comparing of a second light level the captured image data and a second threshold. In some embodiments, the method may also include that a third check of the one or more checks comprises comparing a third threshold and a difference between a first light level of the captured image data and a second light level of the captured image data. In some embodiments, the method may also include that a fourth check of the one or more checks comprises performing a loop closure check. In some embodiments, the method may also include that a fifth check of the one or more checks comprises performing a background check. Performing a background check may include determining a plurality of feature points in the captured image data, distributing the plurality of feature points into one or more sectors, and determining whether the number of feature points for each sector of the one or more sectors exceeds a threshold value.

Optionally, methods disclosed herein may include receiving in a storage medium the captured image data from an image capture device. Methods disclosed herein may include determining that each performed check indicates that the environment is suitable for performing the 3D scan, and instantiating performance of a 3D scanning process. Additionally/or alternatively, methods disclosed herein may include determining that at least one performed check indicates that the environment is unsuitable for performing the 3D scan, and indicating to a user that the environment is unsuitable for performance of the 3D scan. In some embodiments, the methods may further include receiving a user command indicating acknowledgement of the indication that the environment is unsuitable for performance and commanding instantiation of the 3D scanning process.

Also provided herein are devices and computer program products. For example, provided herein include an electronic device that may include a processor and a storage device that is coupled to the processor and comprising computer readable program code therein that when executed by the processor causes the processor to perform any of the method discussed above. Separately, provided herein are computer program products comprising a non-transitory computer readable storage medium comprising computer readable program code therein that when executed by a processor causes the processor to perform any of the method discussed above.

Furthermore, provided herein are computer program products comprising a non-transitory computer readable storage medium comprising computer readable program code therein that when executed by a processor causes the processor to perform operations comprising performing one or more checks on captured image data of the environment. Performing each of the one or more checks on captured image data of the environment may include determining whether a condition exists in the environment satisfies a respective criteria that renders the environment unsuitable for performing the 3D scan. The method may further include determining that the environment is suitable or unsuitable for performing the 3D scan based on a result of each performed check. Determining that the environment is suitable for performing the 3D scan comprises determining that the environment satisfies each of the respective criteria of the performed one or more checks, and wherein determining that the environment is unsuitable for performing the 3D scan comprises determining that the environment does not satisfy at least one criterion of the performed one or more checks.

In some embodiments the computer readable program code that causes the processor to perform the one or more checks comprises computer readable program code that causes the processor to perform at least one of: a comparison of a first light level of the captured image data and a first threshold; a comparison of a second light level the captured image data and a second threshold; and/or a comparison of a third threshold and a difference between a first light level of the captured image data and a second light level of the captured image data.

In some embodiments the computer readable program code that causes the processor to perform the one or more checks comprises computer readable program code that causes the processor to perform a loop closure check.

In some embodiments the computer readable program code that causes the processor to perform the one or more checks comprises computer readable program code that causes the processor to perform a background detail check.

Provided herein are electronic devices, including an electronic device comprising a processor and a storage device that is coupled to the processor and comprising computer readable program code therein that when executed by the processor causes the processor to perform operations comprising performing one or more checks on captured image data of the environment. Performing each of the one or more checks on captured image data of the environment may include determining whether a condition exists in the environment satisfies a respective criteria that renders the environment unsuitable for performing the 3D scan. The method may further include determining that the environment is suitable or unsuitable for performing the 3D scan based on a result of each performed check. Determining that the environment is suitable for performing the 3D scan comprises determining that the environment satisfies each of the respective criteria of the performed one or more checks, and wherein determining that the environment is unsuitable for performing the 3D scan comprises determining that the environment does not satisfy at least one criterion of the performed one or more checks.

In some embodiments, the electronic device may include computer readable program code that causes the processor to perform at least one of a comparison of a first light level of the captured image data and a first threshold; a comparison of a second light level the captured image data and a second threshold; and/or a comparison of a third threshold and a difference between a first light level of the captured image data and a second light level of the captured image data.

In some embodiments, the electronic device may include computer readable program code that causes the processor to perform a loop closure check.

In some embodiments, the electronic device may include computer readable program code that causes the processor to perform operations comprising determining a plurality of feature points in the captured image data, distributing the plurality of feature points into one or more sectors, and determining whether the number of feature points for each sector of the one or more sectors exceeds a threshold value.

DETAILED DESCRIPTION

Three-dimensional (3D) scanning involves the capturing of data representative of a 3D object. In some situations, this data may be captured via an image capturing process, and an image or sequence of images may be processed to locate and determine a collection of points in 3D space. As discussed above, a mesh representation (e.g., a collection of vertices, edges, and faces representing a “net” of interconnected primitive shapes, such as triangles) that defines the shape of the object in three dimensions may be generated from the collection of points. This mesh representation is one component of a 3D model of the 3D object.

As part of context for the present application,FIG. 1Ais a diagram that illustrates a user110capturing multiple images130of a physical object135with an electronic device100, according to various embodiments of present inventive concepts. AlthoughFIG. 1Aillustrates an example in which the images130are captured by an image capture device240(FIG. 2A) at the electronic device100, the images130may alternatively be captured by another device and subsequently received by the electronic device100.

InFIG. 1A, the user110initiates a photographic session of the object135, such as a head of a person or an automobile, at location120a. The object135may be in an environment145, which may be an interior room or an outdoor location. The user110may physically move in the environment145around the object135to various locations, such as from the location120ato a different location120b. An image130of the object135and of the environment145may be captured at each location. For example, image130ais captured when the electronic device100is at the location120a, and image130bis captured when the electronic device100moves to the different location120b. The captured images130may each be two-dimensional (2D) images, and may have a foreground part, which may largely include the object135and a background part which may largely include other objects or other components (e.g., walls and/or wall decorations, furniture, exterior walls, fences) in the environment145.

The electronic device100may provide images130at various angles as the user110walks around the object135. For example, the user110may capture images130around 360 degrees (or, alternatively, at least 180 degrees) of the object135and of the environment145. After capturing at least two images130, such as the images130aand130b, the images130may be processed by a processor250(FIG. 2A) in the electronic device100, or by a processor external to the electronic device100, to construct a preliminary digital 3D model150(FIG. 1B) of the physical object135, or to otherwise generate a 3D image. The terms “construct” (or “constructing”), “generate” (or “generating”), and “build” (or “building”) may be used interchangeably herein.

Processing of the images130may include identifying points140-144of the object135as captured in the images130. The points140-144may include various edges, corners, or other points on a surface of the object135. The points140-144may be recognizable locations on the physical object135that are tracked in various images130of the physical object135. In some embodiments, constructing a preliminary 3D model150of the object135may involve capturing several (e.g., three, four, five, or more) images130of the object135and identifying tens, hundreds, or thousands of points140-144. Locations (e.g., coordinates) of the points140-144may be estimated using various modeling/statistical techniques.

FIG. 1Bis a diagram illustrating a 3D model150of an object135, according to the present disclosure. Referring toFIG. 1B, a preliminary 3D model150of the object135may include an exterior surface151that includes a plurality of polygons155. The plurality of polygons155may provide a representation of an exterior surface of the object135. For example, the plurality of polygons155may model features, such as features at the points140-144, on the exterior surface of the object135. In some embodiments, the plurality of polygons155may include a plurality of triangles.

Referring now toFIG. 2A, a block diagram is provided of an electronic device100ofFIG. 1A, according to the present disclosure. The electronic device100may include a processor250and a storage medium270. Moreover, the electronic device100may, in some embodiments, include an image capture device240, a network interface260, and/or a Graphical User Interface (GUI)290. The GUI290may include a display and/or a keypad or other interface that receives inputs from a user110. In some embodiments, the GUI290may include a touchscreen. The image capture device240may be any camera or other device that captures image data of the object135and environment145that can be used to determine whether an environment is acceptable for performing a three-dimensional (3D) scan. The processor250may be coupled to the network interface260. The processor250may be configured to communicate with a device that provides image data (such as another electronic device100) via the network interface260.

For example, the network interface260may include one or more wireless interfaces (e.g., 3G/LTE, other cellular, WiFi, other short-range, etc.) and one or more physical wired interfaces (e.g., Ethernet, serial, USB interfaces, etc.).

Referring still toFIG. 2A, the storage medium270may be coupled to the processor250. The storage medium270may also store instructions/algorithms used by the processor250. For example, the storage medium270of the electronic device100may include one or more algorithms that determine whether an environment145is acceptable for performing a three-dimensional (3D) scan.

The electronic device100may, in some embodiments, include the GUI290. For example, a user110may use the GUI290at the electronic device100(i) to capture, or otherwise obtain, image data with respect to the object135and environment145, (ii) to determine whether an environment145is acceptable for performing a three-dimensional (3D) scan, (iii) to receive an indication that the environment145is suitable or unsuitable for performing the 3D scan, (iv) to input a command to instantiate the 3D scanning process (even if the environment145is indicated to be unsuitable for performing the 3D scanning process), and/or (v) to provide additional input or data regarding the 3D scanning process.

Referring now toFIG. 2B, a block diagram is provided that illustrates details of an example processor250and storage medium270of an electronic device100that may be used in accordance with various embodiments. The processor250communicates with the storage medium270via an address/data bus280. The processor250may be, for example, a commercially available or custom microprocessor. Moreover, the processor250may include multiple processors. The storage medium270may be referred to herein as a “memory” and may be representative of the overall hierarchy of memory devices containing the software and data used to implement various functions of an electronic device100as described herein. The storage medium370may include, but is not limited to, the following types of devices: cache, ROM, PROM, EPROM, EEPROM, flash, Static RAM (SRAM), and Dynamic RAM (DRAM).

As shown inFIG. 2B, the storage medium270may hold various categories of software and data, such as computer readable program code277and/or an operating system273. The operating system273controls operations of an electronic device100. In particular, the operating system273may manage the resources of an electronic device100and may coordinate execution of various programs by the processor250. The computer readable program code277, when executed by the processor250, may cause the processor250to perform any of the operations illustrated in the flowcharts ofFIGS. 3-6, below.

With the above as context for the present application, it has been recognized that not all environments145are suitable for collection of images130and/or points140-144for later construction of the 3D model. Rather, there are various criteria that may be used to determine whether an environment is suitable or unsuitable for performing a 3D scan. For example, environments145with light levels that are too low, too high, or too inconsistent will result in the capturing of images that are either too dark, too bright, or have too much contrast between them. Additionally, problems in generating the 3D model may result if a low degree of loop closure in the images130. Briefly, loop closure involves detection by an algorithm or device that data within a new image130partially or completely matches data within a previous image130. As discussed above, in some embodiments the user110may capture images130around 360 degrees (or, alternatively, at least 180 degrees) of the object135and of the environment145. Each of these images130may be analyzed and feature points may be found therein. A high percentage of rediscovered feature points in a later image is indicative of an environment145in which 3D scanning is likely to be successful, because it is indicative that the algorithm is able to track the movement of the image capture device240accurately. Additionally, problems in generating the 3D model may result if a low amount of data in the background of the images130, as it may be difficult to separate background components in the environment145from data representing the 3D object. Each of the above and other scenarios may result in difficulty identifying points (e.g., points140-144) on the surface of the object135and may create downstream problems in the generation of the 3D model.

To address this identified problem, provided herein are operations for determining whether an environment145is acceptable or suitable for capturing image data of the environment and an object135situated in the environment145to perform a 3D scan of the object. For example,FIG. 3is a flowchart of an operation for determining whether an environment145is acceptable or suitable for capturing image data of the environment and an object situated in the environment to perform a 3D scan of the object.FIGS. 4-6are flowcharts of example sub-operations of the operation ofFIG. 3, with each ofFIGS. 4-6illustrating performance of one or more specific example checks of the environment145and/or the object135to determine whether a condition exists in the environment145that renders the environment145suitable or unsuitable for capturing the image data. Although an electronic device100may be configured to perform any of the operations in the flowcharts ofFIGS. 3 to 6, one or more of the operations may, in some embodiments, be performed outside of the electronic device100.

As an example usage of the provided operations, the user110may be directed to perform a preliminary capturing of images130around 360 degrees (or, alternatively, at least 180 degrees) of the object135and of the environment145prior to performance of actual 3D scanning (e.g., the user110may navigate around the object135in the environment145twice, once to determine whether the environment is acceptable and once to perform the actual image capturing). As another example usage of the provided operations, the user110may be directed to perform a preliminary capturing of images130around 360 degrees (or, alternatively, at least 180 degrees) of the object135and of the environment145as part of performance of actual 3D scanning, and the captured images may be checked for environment acceptability during the 3D scanning process (e.g., the user110may navigate around the object135in the environment145only once, and the same images are used to determine whether the environment is acceptable and to perform the actual 3D scanning).

Referring toFIG. 3, operations for determining whether an environment is acceptable or suitable for capturing image data of the environment and an object situated in the environment include performing one or more checks (Blocks325,335, and/or345) on captured image data of the environment145and/or the object135situated in the environment145. Each check (Block325,335, and/or345) is associated with a respective criteria. If the environment satisfies the respective criteria associated with a check, then the result may indicate that the environment is suitable for performing the 3D scan of the object135with respect to that criteria. Conversely, if the environment does not satisfy the respective criteria associated with the check, then the result may indicate that the environment is unsuitable for performing the 3D scan of the object135with respect to that criteria. Moreover, the operations may include determining (Block355) that the environment is suitable (YES branch from Block355) or unsuitable (NO branch from Block355) for performing the 3D scan based on the results of the performed one or more checks.

AlthoughFIG. 3illustrates that the one or more checks can be performed in parallel, it is entirely within the scope of the present disclosure that the one or more checks may be performed sequentially, without regard as to order. In other words, a first check (e.g., Block325,335, and/or345) may be performed substantially simultaneously with, subsequent to, or preceding a second check (e.g., Block325,335, and/or345).

The operations of Blocks325,335,345and355may be performed by an electronic device100, which may be a smartphone, a tablet computer, a laptop computer, a portable camera, or one of various other portable electronic devices. Alternatively, the operations of Blocks325,335,345and355may be performed by a server, a desktop computer, a fixed camera (e.g., a security camera), or another electronic device that is separate from, and less portable than, the electronic device100. The electronic device100may, in some embodiments, be referred to as a “mobile device” or a “user equipment.”

FIG. 4corresponds to Block325ofFIG. 3and illustrates operations for performing example light checks of the environment145. The checks ofFIG. 4and of Block325may use an amount of light or light level as a criterion. For one or more of the captured images130, an amount of light or light level may be calculated, either based on the captured image, metadata, and/or other data provided by the image capture device240. A light level value may include one or more of, as examples, light value, exposure value, luminous energy, luminous intensity, luminance, illuminance, and so on. In a first check of the light level of a captured image130, the light level of the image may be compared to a maximum threshold (Block405). If the light level of the image exceeds the maximum threshold, for example, it may indicate that the image is too bright and that the corresponding portion of the environment145may be difficult to capture successfully. A second check of the light level of a captured image130may compare the light level of the image to a minimum threshold (Block415). If the light level of the image is below the minimum threshold, for example, it may indicate that the image is too dark and that the corresponding portion of the environment145may be difficult to capture successfully. Finally, a third check may determine a difference between the maximum light level across the set of captured images and the minimum light level across the set of images. This difference may be compared to an inconsistency threshold (Block425). If the difference exceeds the inconsistency threshold, it may indicate that portions of the environment145may be difficult to capture successfully.

AlthoughFIG. 4illustrates that each of the one or more checks may be performed in the order shown, in some embodiments the order may differ (and as withFIG. 3, the checks may be performed sequentially or in parallel). Moreover, while in some embodiments each check may be performed, in other embodiments, an indication during performance of an initial performed check that the environment is unsuitable may result in not performing a subsequent check and proceeding to indicating the unsuitability of the environment145. This may be beneficial in conserving processing resources, as the environment145has been found to be potentially unsuitable for at least one reason.

FIG. 5corresponds to Block335ofFIG. 3and illustrates operations for performing an example background check of the environment145. The check ofFIG. 5and of Block335may use an amount of data in the background of the images130as a criterion. As discussed above, a low amount of data in the background of the images130may result in problems in generating the 3D model, as it may be difficult to separate background components in the environment145from data representing the 3D object. A low amount of background data can make it hard to compute the movement (“pose and position”) of the device240which is critical to achieve a good 3D model. Unlike some forms of still photography, where a uniform (e.g., monochromatic) background may be desirable, in 3D scanning a background environment with defined features may be more desirable, as it may be useful in determining the feature points of the object135and of the environment145. One example check of the environment145may include, for one or more of the captured images130, determining feature points of the image using one or more feature-point-detecting algorithms, and distributing the detected feature points into sectors or “buckets” (Block505). In some embodiments, the feature points may be stable feature points, which may include feature points that are discovered in multiple captured images130. In some embodiments, a predetermined number of sectors/buckets may be used. For example, 72 buckets may be used. In some embodiments, each sector or bucket may correspond with a portion of the captured image130. These feature points may be distributed for both angles around the horizontal plane and for angles against the horizontal plane. A number of adjacent or neighboring sectors with low feature points may be an indicator of potentially problematic areas.

The operations illustrated inFIG. 5may then determine, for each sector, whether the number of feature points distributed into the sector meets or exceeds a threshold value. (Block515). If the number of feature points for a given sector does not meet or exceed the threshold value, it may indicate that a corresponding portion of the environment145is unsuitable for 3D scanning. In some embodiments, it may be preferable to have a smaller number of points that are spread out in 3D space as compared with a larger number of points closer together in 3D space, as the background feature points may be obscured by the object135being scanned.

FIG. 6corresponds to Block345ofFIG. 3and illustrates operations for performing of an example loop closure check of the environment145. The check ofFIG. 6and of Block345may use a degree of loop closure as a criterion. As discussed above, a low degree of loop closure in the images130may result in problems in generating the 3D model. Briefly, loop closure involves detection by an algorithm or device that data within a new image130partially or completely matches data within a previous image130. As discussed above, in some embodiments the user110may capture images130around 360 degrees (or, alternatively, at least 180 degrees) of the object135and of the environment145. Each of these images130may be analyzed and feature points may be found therein. A high percentage of rediscovered feature points in a later image is indicative of an environment145in which 3D scanning is likely to be successful, because it is indicative that the algorithm is able to track the movement of the image capture device240accurately. InFIG. 6, feature points may be determined for a first image of the captured images130using a feature-point-determining algorithm (Block605). Feature points may also be determined for a second image of the captured images130using a second feature-point-determining algorithm (Block615). The feature points of the first image and the second image may be compared (Block625). If the number of rediscovered feature points between the first image does not exceed a threshold value, then there may be a problem with the environment145(e.g., the environment may be unsuitable for 3D scanning).

Returning toFIG. 3, operations for determining whether an environment145is acceptable or suitable for capturing image data of the environment and an object situated in the environment may include various optional operations. For example, after determining (Block355) that each performed check indicates that the environment145is suitable (YES branch from Block355) or unsuitable (NO branch from Block355) for performing the 3D scan, the operations may, in some embodiments, include indicating the unsuitability of the environment145(Block375). For example, details resulting from the one or more checks (Blocks325,335, and/or345) may be displayed on a display of a Graphical User Interface (GUI)290(FIG. 2A) of the electronic device100. The details may include a brief indication of the problem (e.g., an inadequate amount of light in the environment) and a potential solution (e.g., an instruction to turn on a light or open a window in the environment). In some embodiments, a specific image indicating a portion of the loop in which a problem occurred may be displayed on the GUI290. For example, if during a portion of the loop, the image capture device240was too close to, or too far away from, the object135, one or more of the images captured during the too close/too far portion may be displayed on the GUI290to enable the user110to pinpoint where in the loop an obstacle is, or where greater care is needed.

Operations may also, in some embodiments, include, where at least one of the performed one or more checks indicates the environment145is unsuitable (NO branch from Block355), receiving an override user command (Block385). After displaying the details resulting from the one or more checks (Blocks325,335, and/or345) on the display of a Graphical User Interface (GUI)290(FIG. 2A) of the electronic device100, the user110may decide that a more suitable environment145will be difficult or impossible to achieve. As an example, it may be difficult to impede/eliminate a light source because there is no window shade or curtain for the light source, and the object135to be scanned cannot be located or moved elsewhere. The user110may therefore decide to disregard the indication of unsuitability of the environment145and attempt to perform the 3D scanning process regardless. As a result, a command indicating acknowledgement that the environment145may be unsuitable and commanding instantiation of the 3D scanning process may be received (Block385), and the 3D scanning process may be instantiated (YES branch from Block385). However, in some situations the user may cancel or otherwise terminate the 3D scanning process while improvements to the environment145are made (NO branch from Block385).

Moreover, operations may, in some embodiments, include, if each of the performed one or more checks indicates the environment145is suitable (YES branch from Block355), automatically instantiating the 3D scanning process (Block365). This may include, for example, preparing and/or commanding the electronic device100to perform operations that are part of an image capturing process using the image capture device240. In some embodiments, this may include displaying on the GUI290an indication that the environment is acceptable or suitable for 3D scanning.

Various operations may, in some embodiments, be performed before performing the one or more checks (Blocks325,335, and/or345) on the captured image data of the environment145. The operations may include receiving (Block305), in a storage medium270(FIG. 2A), image data for the environment145from an image capture device240(FIG. 2A). In some embodiments, the same electronic device100that captures the image data may perform the one or more checks (Block325,335, and/or345) of the environment145based on the image data. Alternatively, one device may capture the image data and a different device may perform the one or more checks (Block325,335, and/or345) of the environment145based on the image data. Moreover, operations may include storing/displaying image data (Block315) in the same electronic device100that captured the image data, or receiving the image data from another device via a network interface260(FIG. 2A). In some embodiments, the image data may refer to photos or to frames from a video stream. The checks (Block325,335, and/or345) of the environment145may be used regardless of how the input data/images were captured.

Specific example embodiments of the present inventive concepts are described with reference to the accompanying drawings. The present inventive concepts may, however, be embodied in a variety of different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete and will fully convey the scope of the present inventive concepts to those skilled in the art. In the drawings, like designations refer to like elements. It will be understood that when an element is referred to as being “connected,” “coupled,” or “responsive” to another element, it can be directly connected, coupled or responsive to the other element or intervening elements may be present. Furthermore, “connected,” “coupled,” or “responsive” as used herein may include wirelessly connected, coupled, or responsive.

It will also be understood that although the terms “first” and “second” may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another element. Thus, a first element could be termed a second element, and similarly, a second element may be termed a first element without departing from the teachings of the present inventive concepts.

Example embodiments of the present inventive concepts may be embodied as nodes, devices, apparatuses, and methods. Accordingly, example embodiments of the present inventive concepts may be embodied in hardware and/or in software (including firmware, resident software, micro-code, etc.). Furthermore, example embodiments of the present inventive concepts may take the form of a computer program product comprising a non-transitory computer-usable or computer-readable storage medium having computer-usable or computer-readable program code embodied in the medium for use by or in connection with an instruction execution system. In the context of this document, a computer-usable or computer-readable medium may be any medium that can contain, store, communicate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.

Example embodiments of the present inventive concepts are described herein with reference to flowchart and/or block diagram illustrations. It will be understood that each block of the flowchart and/or block diagram illustrations, and combinations of blocks in the flowchart and/or block diagram illustrations, may be implemented by computer program instructions and/or hardware operations. These computer program instructions may be provided to a processor of a general purpose computer, a special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means and/or circuits for implementing the functions specified in the flowchart and/or block diagram block or blocks.

In the specification, various embodiments of the present inventive concepts have been disclosed and, although specific terms are employed, they are used in a generic and descriptive sense only and not for purposes of limitation. Those skilled in the art will readily appreciate that many modifications are possible for the disclosed embodiments without materially departing from the teachings and advantages of the present inventive concepts. The present inventive concepts are defined by the following claims, with equivalents of the claims to be included therein.