US20230033632A1 - System and method of automatic room segmentation for two-dimensional laser floorplans - Google Patents
System and method of automatic room segmentation for two-dimensional laser floorplans Download PDFInfo
- Publication number
- US20230033632A1 US20230033632A1 US17/965,902 US202217965902A US2023033632A1 US 20230033632 A1 US20230033632 A1 US 20230033632A1 US 202217965902 A US202217965902 A US 202217965902A US 2023033632 A1 US2023033632 A1 US 2023033632A1
- Authority
- US
- United States
- Prior art keywords
- map
- pixels
- image
- room
- scanner
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/187—Segmentation; Edge detection involving region growing; involving region merging; involving connected component labelling
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/40—Document-oriented image-based pattern recognition
- G06V30/42—Document-oriented image-based pattern recognition based on the type of document
- G06V30/422—Technical drawings; Geographical maps
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/02—Systems using the reflection of electromagnetic waves other than radio waves
- G01S17/06—Systems determining position data of a target
- G01S17/42—Simultaneous measurement of distance and other co-ordinates
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/88—Lidar systems specially adapted for specific applications
- G01S17/89—Lidar systems specially adapted for specific applications for mapping or imaging
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10024—Color image
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20112—Image segmentation details
- G06T2207/20156—Automatic seed setting
Definitions
- the present application is directed to a system that optically scans an environment, such as a building, and in particular to a portable system that generates two-dimensional (2D) floorplans of the scanned environment and that uses a vision-based sensor to facilitate automatic room segmentation for 2D floorplan annotation.
- an environment such as a building
- a portable system that generates two-dimensional (2D) floorplans of the scanned environment and that uses a vision-based sensor to facilitate automatic room segmentation for 2D floorplan annotation.
- a floorplan may be desirable to allow construction drawings to be prepared during a renovation.
- Such floorplans may find other uses such as in documenting a building for a fire department or to document a crime scene, in the planning of construction or remodeling of a building, and the like.
- Existing measurement systems typically use a scanning device that determines coordinates of surfaces in the environment by emitting a light and capturing a reflection to determine a distance, or by triangulation using cameras. These scanning devices are mounted to a movable structure, such as a cart, and moved through the building to generate a digital representation of the building. These systems tend to be more complex and require specialized personnel to perform the scan. Further, the scanning equipment including the movable structure may be bulky, which could further delay the scanning process in time sensitive situations, such as a crime or accident scene investigation.
- Added context can include labeling objects such as windows and doors to extract wall lines for use in room segmentation.
- Additional added context that can be added by a user includes annotations such as room type labels (e.g., kitchen, living room, etc.). Current methods of manually labeling digital 2D floorplans can be time-consuming.
- a system for generating an automatically segmented and annotated two-dimensional (2D) map of an environment includes a scanner configured to capture a 2D map comprising one or more point clouds comprising coordinate measurements of one or more points from the environment.
- the system further includes one or more processors operably coupled to the scanner, the one or more processors being responsive to executable instructions for converting the 2D map into a 2D image.
- the system further includes a mapping system configured to categorize a first set of pixels from the image into room-inside, room-outside, and noise by applying a trained neural network to the image.
- the mapping system further categorizes a first subset of pixels from the first set of pixels based on a room type, the first subset of pixels comprising pixels that are categorized as room-inside.
- the mapping system also determines the room type of a second subset of pixels from the first set of pixels based on the first subset of pixels by using a flooding algorithm.
- the mapping system further annotates a portion of the 2D map to identify the room type based on the room type associated with one or more pixels corresponding to the portion.
- the system further includes a portable computing device having a second image sensor, the portable computing device being coupled for communication to the one or more processors, wherein the one or more processors are responsive to correlate a location captured by a first image from the portable computing device with the location in the 2D map of the environment in response to the first image being acquired by the second image sensor.
- the mapping system is further configured to perform automatic segmentation of the 2D image subsequent to the categorization of the pixels from the image.
- the automatic segmentation is performed using one or more of morphological segmentation, Voronoi segmentation, and distance-based segmentation.
- the annotating further includes determining a label that identifies a type of an object and adding the label to the 2D map proximate to a location of the object.
- the label of the object is wall
- the updating the 2D map includes adding the wall to the 2D map as a geometric element at the location.
- the scanner is a 2D scanner disposed in a body of a housing, the housing being sized to be carried by a single person during operation, the body having a first plane extending there through.
- the features of the system described herein can be implemented as a method, a computer program product, or any other form.
- FIG. 1 is an illustration of two-dimensional (2D) maps of an area generated by a mapping system in accordance with an embodiment
- FIG. 2 is a flow diagram of a process for utilizing output from a vision-based sensor in conjunction with scan data to facilitate automatic room segmentation in accordance with an embodiment
- FIG. 3 is a schematic diagram of components of the flow diagram shown in FIG. 2 in accordance with an embodiment
- FIG. 4 is a flow diagram of process for training an image classifier to recognize objects in image data in accordance with an embodiment
- FIG. 5 depicts pixels to be categorized as noise in image data in accordance with an embodiment
- FIG. 6 depicts an overview of the classes used to categories pixels of the image data from a 2D map according to one or more embodiments of the technical solutions described herein;
- FIG. 7 depicts a flow diagram of a method for generating a 2D map, including automatically segmenting rooms in the 2D map in accordance with an embodiment of the technical solutions described herein;
- FIG. 8 is an example of a 2D map generated using automatic segmentation that takes into account locations of doors and windows in accordance with an embodiment
- FIG. 9 is a flow diagram of a process for annotating a 2D map in accordance with an embodiment.
- FIGS. 10 A- 10 R depict an embodiment of structure and usage of a 2D scanner in accordance with technical solutions described herein.
- the technical solutions described herein relate to a device that includes a system having a coordinate measurement scanner that works cooperatively with an inertial measurement unit and an image or vision-based sensor to generate a two-dimensional (2D) map of an environment.
- 2D map refers to a representation of the environment measured by a scanner.
- the 2D map can be represented internally as a grid map that includes a 2D arranged collection of cells, representing an area of the environment.
- the grid map stores, for every cell, a probability indicating whether the cell area is occupied or not.
- An embodiment of the technical solutions described herein provides a framework for automatically segmenting rooms and areas of interest in 2D floor plan maps using locations of doors and windows that are identified by applying artificial intelligence image recognition techniques to images captured by a vision-based sensor.
- room labels e.g., “kitchen”, “living room”, “office”, etc.
- Embodiments of the technical solutions described herein can be used for 2D floor planning, location-based documentation, automatic 2D floorplan labeling, and/or computer aided design (CAD) export.
- CAD computer aided design
- the 2D maps may be generated by data acquired by three-dimensional (3D) coordinate measurement devices, such as but not limited to a laser scanner, a laser tracker, a laser line probe, an image scanner or a triangulation scanner for example.
- 3D coordinate measurement devices such as but not limited to a laser scanner, a laser tracker, a laser line probe, an image scanner or a triangulation scanner for example.
- a scan is performed using a coordinate measurement device, which generates an unsegmented and unlabeled 2D map 122 of a space inside of a building.
- Applying one or more contemporary segmentation techniques e.g., morphological segmentation, Voronoi segmentation, and distance-based segmentation
- the size and boundaries of segments 125 and 127 in 2D map 123 do not accurately reflect the actual rooms of the space that was scanned due, for example, to on an open door 126 between space 125 and 127 when the scan was taken.
- the 2D map 123 that is generated has to be manually edited, for example, using a software tool to obtain a floor plan.
- a user identifies sections, for example, rooms, hallways, doors, windows, etc. in the 2D map 123 .
- Such identification may not be possible due to damaged or missing data in the 2D map 123 in some situations.
- annotations can be automatically added to the floor plan e.g. the room area.
- 2D map 124 in FIG. 1 is generated by adding context, such as locations of doors and windows, to 2D map 122 prior to applying a segmentation technique.
- objects such as doors and windows in the scanned space are identified by applying artificial intelligence image recognition techniques to a video stream generated by a vision-based sensor.
- the identified door 126 is used to segment the space into a kitchen and a hallway.
- scan data in 2D map 122 of locations outside of the identified window 128 are removed.
- image recognition techniques are also used to identify objects in the image stream such as, but not limited to sinks, dishwashers, beds, and showers.
- the identified objects are used to automatically label the segmented areas.
- the areas are annotated with labels, for example, “kitchen” and “hallway.”
- the areas are also annotated with information such as, area, dimensions, etc.
- the segmenting and labeling described herein are performed automatically and without user intervention.
- FIG. 2 a flow diagram 302 of a mapping system for utilizing output from a vision-based sensor in conjunction with scan data to facilitate automatic room segmentation is generally shown in accordance with an embodiment of the technical solutions described herein.
- the flow diagram shown in FIG. 2 automatically extracts wall lines (e.g., based on locations of windows and doors) from a 2D map and then performs automatic room segmentation based at least in part on the extracted wall lines.
- the processing shown in FIG. 2 can be utilized for providing descriptive labels for rooms in a floorplan of a 2D map based on contents of the rooms.
- the 2D maps provided by the processes and apparatuses described above allow the user to capture the geometry/shape of a given environment.
- Embodiments described herein add additional context information to the 2D maps to describe the functionality of the different rooms in the environment as well as the location of additional geometric primitives (e.g., lines, etc.).
- Applying labels to a 2D map facilitates a user sharing information about the environment with others without having to spend time describing the 2D map. While the user that mapped the environment can identify the different regions and rooms of the environment in the 2D map, other users that were not present during the mapping task or in the same environment might struggle to link the different areas of the 2D floorplan to the different rooms of the mapped environment.
- An embodiment of the technical solutions described herein provides the processing flow shown in FIG. 2 to allow a scanner, such as 2D scanner described herein, in conjunction with an image sensor to automatically identify rooms and areas of interest in a 2D map such as those shown in FIGS. herein.
- scan data 310 is generated by a scanner 304
- video stream data 308 is generated by an image or vision-based sensor 303 .
- the scanner 304 can be implemented, for example, by 2D scanner described herein.
- the vision-based sensor 303 is implemented by a camera or video recorder or other image sensor located in a mobile computing device (e.g. personal digital assistant, cellular phone, tablet or laptop) carried by the operator for example.
- the system 300 described above includes a holder (not shown) that couples the mobile computing device to the system 300 .
- the vision-based sensor 303 is implemented by the 3D camera 1060 .
- the vision-based sensor may be a 2D camera that is integral with the scanner 304 .
- the scan data 310 is input to the 2D map generator 314 and the video stream data 308 made up of individual images is input to an classifier 306 .
- video or “video stream data” refers to a series of sequential images acquired by the vision-based sensor at a predetermined frame rate, such as 30 frames per second (fps) or 60 frames per second for example.
- the classifier 306 analyzes the images in the video stream data 308 to identify objects such as doors and windows.
- the identified objects 312 are output by the classifier 306 and input to the 2D map generator 314 .
- the 2D map generator 314 generates a 2D map using for example, the processing described herein.
- the 2D map is segmented into rooms, or areas, based at least in part on where the identified objects 312 are located in the 2D map. For example, locations of the doors and windows can be added to the 2D map to define wall lines which can be used in segmenting the space into rooms and/or areas of interest.
- the location of the object in the image is determined by a mapping/localization algorithm executing on the hand-held scanner.
- the object position can be determined by considering the hand-held scanner position and the mobile device position relative to the hand-held scanner.
- the system 300 uses algorithms that can segment data using either neural networks or filling algorithms or a combination of both, where such segmentation groups similar data from the 2D map.
- the map is converted into an image (pixel data).
- each pixel is assigned a type e.g. room-boundary or room-type by performing classification described above, e.g. using a neural network.
- the pixels, which have now been classified can have subclasses like bathroom, bedroom, hallway etc. to be able to determine specific rooms.
- the results may be postprocessed e.g.
- the rooms and other contents of the map can be identified from the 2D map data itself, without using images from the video stream data 308 in this case.
- the video stream data can be used to improve the results obtained from the map data itself.
- the room and its boundaries are determined using the pixelated data
- further annotations are added by converting the image back into the map.
- the area of a room can be calculated and the label automatically added to the floor plan.
- labels added can include a name of the room, one or more contents of the room, and so on.
- the components shown in FIG. 2 can be used to label the rooms in the segmented 2D map 316 based on contents of the rooms as shown in the video stream data 308 .
- the classifier 306 can be trained to recognize common household or office objects, and the 2D map generator 314 can include logic that labels a room based on the objects that it contains.
- the segmented 2D map 316 is output by the 2D map generator 314 to a user and/or to a storage device.
- FIG. 3 a schematic diagram 320 of components of the mapping system shown in FIG. 2 is generally shown in accordance with one or more embodiments of the technical solutions described herein.
- all of the components are accessible via the network 322 .
- the components shown in FIG. 2 are all located on the same system, such as system 300 described herein.
- only a subset of the components shown in FIG. 2 is located on the system 300 .
- the vision-based sensor 303 and the scanner 304 can both be located on the system 300 , the classifier 306 located on a first processor, and the 2D map generator 314 located on a second processor.
- Other distribution of the components is possible in other embodiments.
- the network 322 shown in FIG. 3 can include one or more of any type of known networks including, but not limited to, a wide area network (WAN), a local area network (LAN), a global network (e.g. Internet), a virtual private network (VPN), and an intranet.
- the network 322 can include a private network in which access thereto is restricted to authorized members.
- the network 322 can be implemented using wireless networking technologies or any kind of physical network implementation known in the art.
- the components shown in FIG. 3 may be coupled to one or more other components through multiple networks (e.g., Internet, intranet, and private network) so that not all components are coupled to other components through the same network 322 .
- the artificial intelligence-based classifier 306 is a neural network inference engine.
- FIG. 4 depicts a data flow of training the classifier 306 according to one or more embodiments of the technical solutions described herein.
- training data includes labeled maps 326 which include maps and their corresponding known segmentation labels that have been previously generated by a human analyst.
- labeled maps 326 which include maps and their corresponding known segmentation labels that have been previously generated by a human analyst.
- the 2D map data is input to the classifier 306 , and the classifier 306 outputs a label of an identified object, or a predicated label.
- the predicted label for the known map is compared, by the classifier training engine 330 to the known label. Based on the results of the comparison, the classifier training engine 330 may update the classifier 306 .
- the classifier training engine 330 can use a loss function to compare a predicted label with a known label. The results of the comparison can be used by the classifier training engine 330 to determine adjustments to neural network biases and weightings to improve accuracy and reduce the loss function. The determined adjustments are input to the classifier 306 .
- the process shown in FIG. 4 can be repeated iteratively to minimize the loss function and maximize the accuracy of predictions.
- portions of the neural network shown in FIG. 4 are implemented by off-the-shelf software. For example, Python and C++ frameworks such as, but not limited to TensorFlowTM, PyBrain, Theano, Torch, and Caffe can be used to implement the neural network.
- the neural network can include a combination of one or more types of neural networks, such as convolutional neural network (CNN), attention models, encoders, decoders, etc.
- CNN convolutional neural network
- Various neural network architectures can be used and trained to predict room boundaries, and room types using trained label data 326 .
- multiple neural networks can be used together to predict the room type.
- a first neural network can be used to identify room boundaries
- a second neural network can be used identify objects, or features in the map 122 .
- the room boundaries and the locations of the objects/features are used in conjunction to predict a room type. For example, consider a pixel that is identified to be inside-room, where the room boundary has a window, and the pixel is associated with an object like a bed, a dresser, an end-table, etc., results in that pixel to be labeled as ‘bedroom’.
- a pixel that is associated with an office-desk is labeled as ‘office’
- a pixel that is associated with an oven is labeled as ‘kitchen’, etc.
- the labeled maps 326 used for training include 2D map data that is converted into image data, i.e., a set of pixels.
- the labeled maps 326 used for training include labels for this data that categorize each of the pixels into categories such as: inside-room, outside-room, and wrong measurements/noise.
- the label “inside-room” identifies as the pixel being inside a particular room or area that is to be mapped (bedroom, bathroom, kitchen, hallway, etc.), the label “outside-room” identifies the pixel being outside any of the rooms that are to be mapped.
- the “wrong measurements/noise” class is used to identify pixels which belong to laser beams going through windows, or other transparent material, resulting in noise on the maps. Such noise 502 looks quite specific and is distinguishable from the actual data. An example of such noise 502 in a map 122 is shown in FIG. 5 .
- room-inside pixels are further grouped into different types of rooms e.g. hallway, office, bathroom, production halls etc.
- the identification of these rooms can be performed based on type of content in the room.
- one or more filters that are typically used by scanners are reduced. Such reduction in the filters produces more data than usual, for content which is typically filtered out.
- the room boundaries are used to identify the room type of pixels nearby. The boundary classification or data from the network is made accessible to the classifier 306 to facilitate such use of proximity information.
- FIG. 6 depicts an overview of the classes used to categories pixels of the image data from a 2D map according to one or more embodiments of the technical solutions described herein. It is understood that the categorization structure that is depicted is one possible example from several other possible categorizations.
- the pixels are categorized as discussed herein, inside ( 602 ), outside ( 604 ), noise ( 606 ).
- the inside ( 602 ) category is further subclassified into particular rooms as discussed herein.
- multiple neural networks, i.e., classifiers 306 are trained for different applications e.g. one network for apartments, one for office buildings, one for single family homes, etc. to reduce the number of categories for a single classifier 306 .
- Objects that can be helpful in identifying a descriptive label for a room in a 2D floorplan can be further used by the classifier 306 when making a prediction.
- the room can be labeled as a bathroom if it has a shower or as a kitchen if it contains a stove.
- the labeled maps 326 that are used to train the classifier 306 can be created by a third party in one or more embodiments of the technical solutions described herein. For example, builders, architects, etc. can provide their typical floor plans that are labeled to identify particular rooms.
- the labeled maps 326 include images converted from point cloud data that is captured by one or more scanners and labeled manually.
- objects can also be recognized using methods such as region-based convolutional neural networks (R-CNNs) and you only look once (YOLO) real-time object recognition, or other methods that rely on qualitative spatial reasoning (QSR).
- R-CNNs region-based convolutional neural networks
- YOLO you only look once
- QSR qualitative spatial reasoning
- FIG. 7 a flow diagram of a method for generating a 2D map, including automatically segmenting rooms in the 2D map, is generally shown in accordance with an embodiment of the technical solutions described herein.
- the method 700 shown in FIG. 7 can be implemented by computer instructions executing on a processor.
- the method 700 includes capturing one or more point clouds that represent the environment that is to be scanned by the scanner, at block 702 .
- the point clouds are registered, aligned, merged, and/or a combination thereof, to obtain the 2D map 122 .
- the method 700 includes preprocessing the map, which includes converting the 2D map 122 into an image, i.e., set of pixels, at block 704 .
- the image is separate from the images/video streams that are captured by an image sensor that is associated with the scanner.
- the method 700 includes analyzing the image with the classifier 306 , which has already been trained using ⁇ map, label-set> training data, at block 706 .
- the classifier 306 labels each pixel in the image using the predetermined categories. First, each pixel is labeled as being inside-room, outside-room, or noise. Further, each pixel that is labeled as being inside-room, is labeled with a particular type of room, e.g., kitchen, hallway, bathroom, bedroom, etc.
- the outside-room pixels can represent the room boundaries, or a space in the environment that is not to be mapped, in one or more embodiments of the technical solutions described herein.
- the pixels that are recognized as being artifacts caused because of the scanner beams being reflected/refraction are classified as noise.
- the method 700 further includes segmenting the pixels in the image to determine all the pixels that are part of the same room, at block 708 .
- the segmentation includes grouping the pixels that are marked with the same labels together. For example, the pixels marked room-inside are in a first segment, the pixels marked room-outside are in a second segment, and the pixels marked noise are in a third segment. Further, the pixels in the segment corresponding to the label room-inside, are further segmented according to the type of room. For example, the pixels in the first segment are further grouped into pixels marked bedroom, hallway, kitchen, etc.
- Types of automatic segmentation that can be applied include, but are not limited to morphological segmentation, Voronoi segmentation, and/or distance-based segmentation.
- morphological segmentation erosion is iteratively applied to the 2D map (binary image). Whenever erosion is performed, the method looks for separate regions and marks them so they are not part of the search in the next iteration.
- Voronoi segmentation includes computing a Voronoi diagram over the 2D map.
- a Voronoi diagram includes the partitioning of a plane with n points into convex polygons such that each polygon contains exactly one generating point and every point in a given polygon is closer to its generating point than to any other point.
- the different points in the Voronoi diagram are then grouped, and for each group of points, a search for the point with the smallest distance to occupied cells in the 2D map is conducted, which is then connected to the two closest occupied cells, creating a “frontier.” This is performed to every group of points resulting in separation of the different areas of the map, each of these areas are then marked as a different room.
- distance-base segmentation a distance transform is calculated over the 2D map in order to identify the center of the room (local maxima). The room centers are then labeled and extended into the non-labeled space using wave front propagation.
- the method 700 includes post-processing the image using pixels that have been associated with labels so far, at block 710 .
- the method 700 includes selecting a first pixel from the set of pixels that have been labeled with a room type.
- the method 700 includes using flooding algorithm to select, sequentially or in parallel, neighboring pixels of the first pixel. If a neighboring pixel is labeled already with a room type, that pixel is skipped at this time. If the neighboring pixel is not labeled with a room type, and if the neighboring pixel is room-inside based on the room boundaries, that neighboring pixel can be labels the same as the first pixel.
- the image is reconverted into the map 122 .
- the image with the labeled pixels is used as a reference to annotate the map 122 .
- the type of room is used from the image and added to the map 122 as an annotation at corresponding position.
- the corresponding position is determined by registering the image with the 2D map 122 .
- dimensions of the room can be used to calculate features such as, the area of a room, and add such calculations automatically to the map 122 as part of the annotations.
- the classification of the room boundary type, object types, etc. are also added as annotations to the map 122 , for example, to identify windows, doors, walls, desks, beds, ovens, and other such objects/features.
- the automatically segmented 2D map is output for storage in a storage device and/or output to a display.
- the technical solutions described herein identify features, including objects and room types, in the environment being scanned more accurately to reflect the actual environment when compared to contemporary approaches. Further, the technical solutions described herein can identify such features without using image sensor accessories, rather only using a scanner that captures point clouds that represent a 2D map of the environment.
- FIG. 8 depicts an example of a 2D map 802 that was automatically segmented and annotated in accordance with an embodiment of the technical solutions described herein.
- the 2D map 802 in FIG. 8 is contrasted with 2D map 122 shown in FIG. 1 , which is an example of a 2D map prior to performing any of the processing described herein.
- the segmented and annotated map 802 identifies boundaries 810 of the rooms, and room types using annotations 812 as well as visual attributes 814 (e.g., shading, color, etc.).
- the annotations can further include dimensions, area, and other such attributes that can be identified using the scan data that is captured.
- Each of the room types can be assigned a specific visual attribute.
- the segmented and annotated map 802 can be used for CAD export.
- the AI-based object recognition process and 2D map generation described previously identifies and labels door locations (not shown).
- FIG. 9 a flow diagram of a method for annotating a 2D map is generally shown in accordance with an embodiment.
- the process shown in FIG. 9 can be implemented by computer instructions executing on a processor.
- Descriptive labels for segments, or rooms, in the 2D map 802 are generated using AI to identify objects in the room, and then by applying a label based on the identified objects. For example, if a room contains a stove and a refrigerator, then it can be given the label “kitchen”, and if the room contains a table and chairs but no stove or refrigerator then it can be labeled “dining room.”
- the labeling is not limited to households. For example, in a workplace, a room having an office chair and a computer monitor can be labeled “office” and a room having a long table and several office chairs can be labeled “conference room.”
- scan data is received from a scanner, and corresponding video stream data is received from a vision-based sensor.
- a 2D map 802 is generated using for example, the processing described herein.
- the generated 2D map 802 is segmented and pixels of the same type are grouped, however the room types are not annotated at this time.
- An example of the 2D map 802 generated is shown in FIG. 8 .
- the classifier 306 identifies objects in the video stream data at locations in the 2D map 802 . Such object identification can be performed using known AI techniques, such as neural networks. Processing continues at block 908 where the 2D map 802 is annotated based on the identified objects.
- the annotated 2D map 802 is output for storage in a storage device and/or output to a display.
- An example of an annotated 2D map is 2D map 124 of FIG. 1 , and or the annotated map 802 in FIG. 8 .
- blocks 906 - 910 are performed after block 710 in FIG. 7 to label rooms in an automatically segmented 2D map.
- FIGS. 10 A- 10 R an embodiment of a 2D scanner 1030 is shown having a housing 1032 that includes a body portion 1034 and a removable handle portion 1036 .
- the handle 1036 may be removed before the 2D scanner 1030 is coupled to the base unit 302 when used in the embodiment shown.
- the handle 1036 may include an actuator 1038 that allows the operator to interact with the scanner 1030 .
- the body 1034 includes a generally rectangular center portion 1035 with a slot 1040 formed in an end 1042 .
- the slot 1040 is at least partially defined by a pair walls 1044 that are angled towards a second end 1048 .
- a portion of a 2D laser scanner 1050 is arranged between the walls 1044 .
- the walls 1044 are angled to allow the 2D laser scanner 1050 to operate by emitting a light over a large angular area without interference from the walls 1044 .
- the end 1042 may further include a three-dimensional camera or RGBD camera.
- the mobile device holder 1041 is configured to securely couple a mobile device 1043 to the housing 1032 .
- the holder 1041 may include one or more fastening elements, such as a magnetic or mechanical latching element for example, that couples the mobile device 1043 to the housing 1032 .
- the mobile device 1043 is coupled to communicate with a controller 1068 .
- the communication between the controller 1068 and the mobile device 1043 may be via any suitable communications medium, such as wired, wireless or optical communication mediums for example.
- the holder 1041 is pivotally coupled to the housing 1032 , such that it may be selectively rotated into a closed position within a recess 1046 .
- the recess 1046 is sized and shaped to receive the holder 1041 with the mobile device 1043 disposed therein.
- the second end 1048 includes a plurality of exhaust vent openings 1056 .
- the exhaust vent openings 1056 are fluidly coupled to intake vent openings 1058 arranged on a bottom surface 1062 of center portion 1035 .
- the intake vent openings 1058 allow external air to enter a conduit 1064 having an opposite opening 1066 in fluid communication with the hollow interior 1067 of the body 1034 .
- the opening 1066 is arranged adjacent to a controller 1068 which has one or more processors that is operable to perform the methods described herein.
- the external air flows from the opening 1066 over or around the controller 1068 and out the exhaust vent openings 1056 .
- the controller 1068 is coupled to a wall 1070 of body 1034 .
- the wall 1070 is coupled to or integral with the handle 1036 .
- the controller 1068 is electrically coupled to the 2D laser scanner 1050 , the 3D camera 1060 , a power source 1072 , an inertial measurement unit (IMU) 1074 , a laser line projector 1076 ( FIG. 10 E ), and a haptic feedback device 1077 .
- IMU inertial measurement unit
- Controller 1068 is a suitable electronic device capable of accepting data and instructions, executing the instructions to process the data, and presenting the results.
- the controller 1068 includes one or more processing elements 1078 .
- the processors may be microprocessors, field programmable gate arrays (FPGAs), digital signal processors (DSPs), and generally any device capable of performing computing functions.
- the one or more processors 1078 have access to memory 1080 for storing information.
- Controller 1068 is capable of converting the analog voltage or current level provided by 2D laser scanner 1050 , camera 1060 and IMU 1074 into a digital signal to determine a distance from the scanner 1030 to an object in the environment.
- the camera 1060 is a 3D or RGBD type camera.
- Controller 1068 uses the digital signals that act as input to various processes for controlling the scanner 1030 .
- the digital signals represent one or more scanner 1030 data including but not limited to distance to an object, images of the environment, acceleration, pitch orientation, yaw orientation and roll orientation.
- the digital signals may be from components internal to the housing 1032 or from sensors and devices located in the mobile device 1043 .
- controller 1068 accepts data from 2D laser scanner 1050 and IMU 1074 and is given certain instructions for the purpose of generating a two-dimensional map of a scanned environment. Controller 1068 provides operating signals to the 2D laser scanner 1050 , the camera 1060 , laser line projector 1076 and haptic feedback device 1077 . Controller 1068 also accepts data from IMU 1074 , indicating, for example, whether the operator is operating in the system in the desired orientation. The controller 1068 compares the operational parameters to predetermined variances (e.g. yaw, pitch or roll thresholds) and if the predetermined variance is exceeded, generates a signal that activates the haptic feedback device 1077 .
- predetermined variances e.g. yaw, pitch or roll thresholds
- the data received by the controller 1068 may be displayed on a user interface coupled to controller 1068 .
- the user interface may be one or more LEDs (light-emitting diodes) 1082 , an LCD (liquid-crystal diode) display, a CRT (cathode ray tube) display, or the like.
- a keypad may also be coupled to the user interface for providing data input to controller 1068 .
- the user interface is arranged or executed on the mobile device 1043 .
- the controller 1068 may also be coupled to external computer networks such as a local area network (LAN) and the Internet.
- a LAN interconnects one or more remote computers, which are configured to communicate with controllers 1068 using a well-known computer communications protocol such as TCP/IP (Transmission Control Protocol/Internet( ⁇ circumflex over ( ) ⁇ ) Protocol), RS-232, ModBus, and the like.
- Additional scanners 1030 may also be connected to LAN with the controllers 1068 in each of these scanners 1030 being configured to send and receive data to and from remote computers and other scanners 1030 .
- the LAN may be connected to the Internet. This connection allows controller 1068 to communicate with one or more remote computers connected to the Internet.
- the processors 1078 are coupled to memory 1080 .
- the memory 1080 may include random access memory (RAM) device 1084 , a non-volatile memory (NVM) device 1086 , a read-only memory (ROM) device 1088 .
- the processors 1078 may be connected to one or more input/output (I/O) controllers 1090 and a communications circuit 1092 .
- the communications circuit 1092 provides an interface that allows wireless or wired communication with one or more external devices or networks, such as the LAN discussed above or the communications circuit 1018 .
- Controller 1068 includes operation control methods embodied in application code. These methods are embodied in computer instructions written to be executed by processors 1078 , typically in the form of software.
- the software can be encoded in any language, including, but not limited to, assembly language, VHDL (Verilog Hardware Description Language), VHSIC HDL (Very High Speed IC Hardware Description Language), Fortran (formula translation), C, C++, C#, Objective-C, Visual C++, Java, ALGOL (algorithmic language), BASIC (beginners all-purpose symbolic instruction code), visual BASIC, ActiveX, HTML (HyperText Markup Language), Python, Ruby and any combination or derivative of at least one of the foregoing.
- assembly language VHDL (Verilog Hardware Description Language), VHSIC HDL (Very High Speed IC Hardware Description Language), Fortran (formula translation), C, C++, C#, Objective-C, Visual C++, Java, ALGOL (algorithmic language), BASIC (beginners all-purpose symbolic instruction code), visual
- the 2D laser scanner 1050 measures 2D coordinates in a plane. In the exemplary embodiment, the scanning is performed by steering light within a plane to illuminate object points in the environment.
- the 2D laser scanner 1050 collects the reflected (scattered) light from the object points to determine 2D coordinates of the object points in the 2D plane.
- the 2D laser scanner 1050 scans a spot of light over an angle while at the same time measuring an angle value and corresponding distance value to each of the illuminated object points.
- 2D laser scanners 1050 examples include, but are not limited to Model LMS100 scanners manufactured by Sick, Inc. of Minneapolis, Minn. and scanner Models URG-04LX-UG01 and UTM-30LX manufactured by Hokuyo Automatic Co., Ltd of Osaka, Japan.
- the scanners in the Sick LMS100 family measure angles over a 270-degree range and over distances up to 20 meters.
- the Hoyuko model URG-04LX-UG01 is a low-cost 2D scanner that measures angles over a 240-degree range and distances up to 20 meters.
- the Hoyuko model UTM-30LX is a 2D scanner that measures angles over a 270-degree range and to distances up to 30 meters. It should be appreciated that the above 2D scanners are exemplary and other types of 2D scanners are also available.
- the 2D laser scanner 1050 is oriented so as to scan a beam of light over a range of angles in a generally horizontal plane (relative to the floor of the environment being scanned). At instants in time the 2D laser scanner 1050 returns an angle reading and a corresponding distance reading to provide 2D coordinates of object points in the horizontal plane. In completing one scan over the full range of angles, the 2D laser scanner returns a collection of paired angle and distance readings. As the platform is moved from place to place, the 2D laser scanner 1050 continues to return 2D coordinate values. These 2D coordinate values are used to locate the position of the scanner 1030 thereby enabling the generation of a two-dimensional map or floorplan of the environment.
- the IMU 1074 is a position/orientation sensor that may include accelerometers 1094 (inclinometers), gyroscopes 1096 , a magnetometer or compass 1098 , and altimeters.
- the IMU 1074 includes multiple accelerometers 1094 and gyroscopes 1096 .
- the compass 1098 indicates a heading based on changes in magnetic field direction relative to the earth's magnetic north.
- the IMU 1074 may further have an altimeter that indicates altitude (height).
- An example of a widely used altimeter is a pressure sensor.
- the IMU 1074 determines the pose or orientation of the scanner 108 about three-axis to allow a determination of a yaw, roll and pitch parameter.
- the scanner 1030 further includes a camera 1060 that is a 3D or RGB-D camera.
- the term 3D camera refers to a device that produces a two-dimensional image that includes distances to a point in the environment from the location of scanner 1030 .
- the 3D camera 1060 may be a range camera or a stereo camera.
- the 3D camera 1060 includes an RGB-D sensor that combines color information with a per-pixel depth information.
- the 3D camera 1060 may include an infrared laser projector 1031 , a left infrared camera 1033 , a right infrared camera 1039 , and a color camera 1037 .
- the 3D camera 1060 is a RealSenseTM camera model R200 manufactured by Intel Corporation.
- the mobile device 1043 when the mobile device 1043 is coupled to the housing 1032 , the mobile device 1043 becomes an integral part of the scanner 1030 .
- the mobile device 1043 is a cellular phone, a tablet computer or a personal digital assistant (PDA).
- the mobile device 1043 may be coupled for communication via a wired connection, such as ports 1001 , 1002 .
- the port 1001 is coupled for communication to the processor 1078 , such as via I/O controller 1090 for example.
- the ports 1001 , 1002 may be any suitable port, such as but not limited to USB, USB-A, USB-B, USB-C, IEEE 13910 (Firewire), or LightningTM connectors.
- the mobile device 1043 is a suitable electronic device capable of accepting data and instructions, executing the instructions to process the data, and presenting the results.
- the mobile device 1043 includes one or more processors 1004 .
- the processors 1004 may be microprocessors, field programmable gate arrays (FPGAs), digital signal processors (DSPs), and generally any device capable of performing computing functions.
- the one or more processors 1004 have access to memory 1006 for storing information.
- the mobile device 1043 is capable of converting the analog voltage or current level provided by sensors 1008 and processor 1078 .
- Mobile device 1043 uses the digital signals that act as input to various processes for controlling the scanner 1030 .
- the digital signals represent one or more platform data including but not limited to distance to an object, images of the environment, acceleration, pitch orientation, yaw orientation, roll orientation, global position, ambient light levels, and altitude for example.
- mobile device 1043 accepts data from sensors 1008 and is given certain instructions for the purpose of generating or assisting the processor 1078 in the generation of a two-dimensional map or three-dimensional map of a scanned environment.
- Mobile device 1043 provides operating signals to the processor 1078 , the sensors 1008 and a display 1010 .
- Mobile device 1043 also accepts data from sensors 1008 , indicating, for example, to track the position of the mobile device 1043 in the environment or measure coordinates of points on surfaces in the environment.
- the mobile device 1043 compares the operational parameters to predetermined variances (e.g. yaw, pitch or roll thresholds) and if the predetermined variance is exceeded, may generate a signal.
- the data received by the mobile device 1043 may be displayed on display 1010 .
- the display 1010 is a touch screen device that allows the operator to input data or control the operation of the scanner 1030 .
- the controller 1068 may also be coupled to external networks such as a local area network (LAN), a cellular network and the Internet.
- a LAN interconnects one or more remote computers, which are configured to communicate with controller 68 using a well-known computer communications protocol such as TCP/IP (Transmission Control Protocol/Internet( ⁇ circumflex over ( ) ⁇ ) Protocol), RS-232, ModBus, and the like.
- Additional scanners 1030 may also be connected to LAN with the controllers 1068 in each of these scanners 1030 being configured to send and receive data to and from remote computers and other scanners 1030 .
- the LAN may be connected to the Internet. This connection allows controller 1068 to communicate with one or more remote computers connected to the Internet.
- the processors 1004 are coupled to memory 1006 .
- the memory 1006 may include random access memory (RAM) device, a non-volatile memory (NVM) device, and a read-only memory (ROM) device.
- the processors 1004 may be connected to one or more input/output (I/O) controllers 1012 and a communications circuit 1014 .
- the communications circuit 1014 provides an interface that allows wireless or wired communication with one or more external devices or networks, such as the LAN or the cellular network discussed above.
- Controller 1068 includes operation control methods embodied in application code. These methods are embodied in computer instructions written to be executed by processors 1078 , 1004 , typically in the form of software.
- the software can be encoded in any language, including, but not limited to, assembly language, VHDL (Verilog Hardware Description Language), VHSIC HDL (Very High Speed IC Hardware Description Language), Fortran (formula translation), C, C++, C#, Objective-C, Visual C++, Java, ALGOL (algorithmic language), BASIC (beginners all-purpose symbolic instruction code), visual BASIC, ActiveX, HTML (HyperText Markup Language), Python, Ruby and any combination or derivative of at least one of the foregoing.
- assembly language VHDL (Verilog Hardware Description Language), VHSIC HDL (Very High Speed IC Hardware Description Language), Fortran (formula translation), C, C++, C#, Objective-C, Visual C++, Java, ALGOL (algorithmic language), BASIC (beginners all-purpose symbolic
- the sensors 1008 may include but are not limited to: a microphone 1016 ; a speaker 1018 ; a front or rear facing camera 1020 ; accelerometers 1022 (inclinometers), gyroscopes 1024 , a magnetometers or compass 1026 ; a global positioning satellite (GPS) module 1028 ; a barometer 1029 ; a proximity sensor 1027 ; and an ambient light sensor 1025 .
- a fusion algorithm that may include a Kalman filter, relatively accurate position and orientation measurements can be obtained.
- the sensors 1060 , 1074 integrated into the scanner 1030 may have different characteristics than the sensors 1008 of mobile device 1043 .
- the resolution of the cameras 1060 , 1020 may be different, or the accelerometers 1094 , 1022 may have different dynamic ranges, frequency response, sensitivity (mV/g) or temperature parameters (sensitivity or range).
- the gyroscopes 1096 , 1024 or compass/magnetometer may have different characteristics. It is anticipated that in some embodiments, one or more sensors 1008 in the mobile device 1043 may be of higher accuracy than the corresponding sensors 1074 in the scanner 1030 .
- the processor 1078 determines the characteristics of each of the sensors 1008 and compares them with the corresponding sensors in the scanner 1030 when the mobile device. The processor 1078 then selects which sensors 1074 , 1008 are used during operation.
- the mobile device 1043 may have additional sensors (e.g. microphone 1016 , camera 1020 ) that may be used to enhance operation compared to operation of the scanner 1030 without the mobile device 1043 .
- the scanner 1030 does not include the IMU 1074 and the processor 1078 uses the sensors 1008 for tracking the position and orientation/pose of the scanner 1030 .
- the addition of the mobile device 1043 allows the scanner 1030 to utilize the camera 1020 to perform three-dimensional (3D) measurements either directly (using an RGB-D camera) or using photogrammetry techniques to generate 3D maps.
- the processor 1078 uses the communications circuit (e.g. a cellular 10 G internet connection) to transmit and receive data from remote computers or devices.
- the scanner 1030 determines a quality attribute/parameter for the tracking of the scanner 1030 and/or the platform 100 .
- the tracking quality attribute is a confidence level in the determined tracking positions and orientations to actual positions and orientations.
- the scanner 1030 may provide feedback to the operator to perform a stationary scan. It should be appreciated that a stationary scan will provide a highly accurate measurements that will allow the determination of the position and orientation of the scanner or platform with a high level of confidence.
- the feedback is provided via a user interface.
- the user interface may be on the scanner 1030 , or a platform associated with the scanner 1030 .
- the scanner 1030 is a handheld portable device that is sized and weighted to be carried by a single person during operation. Therefore, the plane 1009 in which the 2D laser scanner 1050 projects a light beam may not be horizontal relative to the floor or may continuously change as the computer moves during the scanning process.
- the signals generated by the accelerometers 1094 , gyroscopes 1096 and compass 1098 (or the corresponding sensors 1008 ) may be used to determine the pose (yaw, roll, tilt) of the scanner 108 and determine the orientation of the plane 1051 .
- a haptic feedback device 1077 is disposed within the housing 1032 , such as in the handle 1036 .
- the haptic feedback device 1077 is a device that creates a force, vibration or motion that is felt or heard by the operator.
- the haptic feedback device 1077 may be, but is not limited to: an eccentric rotating mass vibration motor or a linear resonant actuator for example.
- the haptic feedback device is used to alert the operator that the orientation of the light beam from 2D laser scanner 1050 is equal to or beyond a predetermined threshold.
- the controller 1068 transmits a signal to a motor controller 1038 that activates a vibration motor 1045 . Since the vibration originates in the handle 1036 , the operator will be notified of the deviation in the orientation of the scanner 1030 . The vibration continues until the scanner 1030 is oriented within the predetermined threshold or the operator releases the actuator 1038 . In an embodiment, it is desired for the plane 1009 to be within 10-15 degrees of horizontal (relative to the ground) about the yaw, roll and pitch axes.
- the 2D laser scanner 1050 makes measurements as the scanner 1030 is moved around in an environment, such from a first position 1011 to a second registration position 1072 .
- the scan data is collected and processed as the scanner 1030 passes through a plurality of 2D measuring positions 1021 .
- the 2D laser scanner 1050 collects 2D coordinate data over an effective FOV 1005 .
- the controller 1068 uses 2D scan data from the plurality of 2D scans at positions 1021 to determine a position and orientation of the scanner 1030 as it is moved about the environment.
- the common coordinate system is represented by 2D Cartesian coordinates x, y and by an angle of rotation ⁇ relative to the x or y axis.
- the x and y axes lie in the plane of the 2D scanner and may be further based on a direction of a “front” of the 2D laser scanner 1050 .
- FIG. 10 M shows the scanner 1030 collecting 2D scan data at selected positions 1021 over an effective FOV 1005 .
- the 2D laser scanner 1050 captures a portion of the object 1015 marked A, B, C, D, and E ( FIG. 10 L ).
- FIG. 10 M shows 2D laser scanner 1050 moving in time relative to a fixed frame of reference of the object 1015 .
- FIG. 10 M includes the same information as FIG. 10 L but shows it from the frame of reference of the scanner 1030 rather than the frame of reference of the object 1015 .
- FIG. 10 M illustrates that in the scanner 1030 frame of reference, the position of features on the object change over time. Therefore, the distance traveled by the scanner 1030 can be determined from the 2D scan data sent from the 2D laser scanner 1050 to the controller 1068 .
- the controller 1068 keeps track of the translation and rotation of the 2D laser scanner 1050 , which is the same as the translation and rotation of the scanner 1030 . In this way, the controller 1068 is able to accurately determine the change in the values of x, y, ⁇ as the scanner 1030 moves from the first position 1011 to the second position 1021 .
- the controller 1068 is configured to determine a first translation value, a second translation value, along with first and second rotation values (yaw, roll, pitch) that, when applied to a combination of the first 2D scan data and second 2D scan data, results in transformed first 2D data that closely matches transformed second 2D data according to an objective mathematical criterion.
- the translation and rotation may be applied to the first scan data, the second scan data, or to a combination of the two.
- a translation applied to the first data set is equivalent to a negative of the translation applied to the second data set in the sense that both actions produce the same match in the transformed data sets.
- An example of an “objective mathematical criterion” is that of minimizing the sum of squared residual errors for those portions of the scan data determined to overlap.
- Another type of objective mathematical criterion may involve a matching of multiple features identified on the object. For example, such features might be the edge transitions 1052 , 1053 , and 1054 .
- the mathematical criterion may involve processing of the raw data provided by the 2D laser scanner 1050 to the controller 1068 , or it may involve a first intermediate level of processing in which features are represented as a collection of line segments using methods that are known in the art, for example, methods based on the Iterative Closest Point (ICP).
- ICP Iterative Closest Point
- the first translation value is dx
- the second translation value is dy
- the controller 1068 is further configured to determine a third translation value (for example, dz) and a second and third rotation values (for example, pitch and roll).
- the third translation value, second rotation value, and third rotation value may be determined based at least in part on readings from the IMU 1074 .
- the 2D laser scanner 1050 collects 2D scan data starting at the first position 1011 and more 2D scan data at the second position 1021 . In some cases, these scans may suffice to determine the position and orientation of the scanner 1030 at the second position 1021 relative to the first position 1011 . In other cases, the two sets of 2D scan data are not sufficient to enable the controller 1068 to accurately determine the first translation value, the second translation value, and the first rotation value. This problem may be avoided by collecting 2D scan data at intermediate scan positions 1013 . In an embodiment, the 2D scan data is collected and processed at regular intervals, for example, once per second. In this way, features in the environment are identified in successive 2D scans at positions 1013 .
- the controller 1068 may use the information from all the successive 2D scans in determining the translation and rotation values in moving from the first position 1011 to the second position 1021 .
- the controller 1068 may use the information from all the successive 2D scans in determining the translation and rotation values in moving from the first position 1011 to the second position 1021 .
- only the first and last scans in the final calculation simply using the intermediate 2D scans to ensure proper correspondence of matching features. In most cases, accuracy of matching is improved by incorporating information from multiple successive 2D scans.
- a two-dimensional image or map of the environment being scanned may be generated.
- the data from scanner 1030 may be used to generate (and store) a 2D trajectory of the scanner 1030 as it is moved through the environment.
- the 2D map and/or the 2D trajectory may be combined or fused with data from other sources in the registration of measured 3D coordinates. It should be appreciated that the 2D trajectory may represent a path followed by the 2D scanner 1030 .
- a method 1007 is shown for generating a two-dimensional map with annotations.
- the method 1007 starts in block 1007 A where the facility or area is scanned to acquire scan data 1075 , such as that shown in FIG. 10 O .
- the scanning is performed by carrying the scanner 1030 through the area to be scanned.
- the scanner 1030 measures distances from the scanner 1030 to an object, such as a wall for example, and also a pose of the scanner 1030 in an embodiment the user interacts with the scanner 1030 via actuator 1038 .
- the mobile device 1043 provides a user interface that allows the operator to initiate the functions and control methods described herein.
- the two-dimensional locations of the measured points on the scanned objects may be determined.
- the initial scan data may include artifacts, such as data that extends through a window 1085 or an open door 1089 for example. Therefore, the scan data 1075 may include additional information that is not desired in a 2D map or layout of the scanned area.
- the method 1007 then proceeds to block 1007 B where a 2D map 1079 is generated of the scanned area as shown in FIG. 10 N .
- the generated 2D map 1079 represents a scan of the area, such as in the form of a floor plan without the artifacts of the initial scan data. It should be appreciated that the 2D map 1079 represents a dimensionally accurate representation of the scanned area that may be used to determine the position and pose of the mobile scanning platform in the environment to allow the registration of the 3D coordinate points measured by the 3D measurement device 110 .
- FIG. 10 is a scan of the area, such as in the form of a floor plan without the artifacts of the initial scan data. It should be appreciated that the 2D map 1079 represents a dimensionally accurate representation of the scanned area that may be used to determine the position and pose of the mobile scanning platform in the environment to allow the registration of the 3D coordinate points measured by the 3D measurement device 110 . In the embodiment of FIG.
- the method 1007 then proceeds to block 1007 C where optional user-defined annotations are made to the 2D maps 1079 to define an annotated 2D map that includes information, such as dimensions of features, the location of doors, the relative positions of objects (e.g. liquid oxygen tanks, entrances/exits or egresses or other notable features such as but not limited to the location of automated sprinkler systems, knox or key boxes, or fire department connection points (“FDC”).
- the annotation may also be used to define scan locations where the mobile scanning platform stops and uses the scanner 1030 to perform a stationary scan of the environment.
- the method 1007 then proceeds to block 1007 D where the 2D map is stored in memory, such as nonvolatile memory 1087 for example.
- the 2D map may also be stored in a network accessible storage device or server so that it may be accessed by the desired personnel.
- the 2D laser scanner 1050 emits a beam of light in the plane 1009 .
- the 2D laser scanner 1050 has a field of view (FOV) that extends over an angle that is less than 360 degrees. In the exemplary embodiment, the FOV of the 2D laser scanner is about 270 degrees.
- the mobile device 1043 is coupled to the housing 1032 adjacent the end where the 2D laser scanner 1050 is arranged.
- the mobile device 1043 includes a forward-facing camera 1020 .
- the camera 1020 is positioned adjacent a top side of the mobile device and has a predetermined field of view 1005 .
- the holder 1041 couples the mobile device 1043 on an obtuse angle 1003 .
- This arrangement allows the mobile device 1043 to acquire images of the floor and the area directly in front of the scanner 1030 (e.g. the direction the operator is moving the platform).
- the camera 1020 is an RGB-D type camera
- three-dimensional coordinates of surfaces in the environment may be directly determined in a mobile device coordinate frame of reference.
- the holder 1041 allows for the mounting of the mobile device 1043 in a stable position (e.g. no relative movement) relative to the 2D laser scanner 1050 .
- the processor 1078 performs a calibration of the mobile device 1043 allowing for a fusion of the data from sensors 1008 with the sensors of scanner 1030 .
- the coordinates of the 2D laser scanner may be transformed into the mobile device coordinate frame of reference or the 3D coordinates acquired by camera 1020 may be transformed into the 2D scanner coordinate frame of reference.
- the mobile device is calibrated to the 2D laser scanner 1050 by assuming the position of the mobile device based on the geometry and position of the holder 1041 relative to 2D laser scanner 1050 .
- a calibration is performed each time a different mobile device 1043 is used.
- the user is guided (such as via the user interface/display 1010 ) to direct the scanner 1030 to scan a specific object, such as a door, that can be readily identified in the laser readings of the scanner 1030 and in the camera-sensor 1020 using an object recognition method.
- a specific object such as a door
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Electromagnetism (AREA)
- Artificial Intelligence (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Evolutionary Computation (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Medical Informatics (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
A system for generating an automatically segmented and annotated two-dimensional (2D) map of an environment includes processors coupled to a scanner to convert a 2D map from the scanner into a 2D image. Further, a mapping system categorizes a first set of pixels from the image into one of room-inside, room-outside, and noise by applying a trained neural network to the image. The mapping system further categorizes a first subset of pixels from the first set of pixels based on a room type if the first subset of pixels is categorized as room-inside. The mapping system also determines the room type of a second subset of pixels from the first set of pixels based on the first subset of pixels by using a flooding algorithm. The mapping system further annotates a portion of the 2D map to identify the room type based on the pixels corresponding to the portion.
Description
- This application claims the benefit of U.S. Non-Provisional application Ser. No. 17/325,947, filed May 20, 2021, which claims the benefit of U.S. Provisional Application Ser. No. 63/066,443, filed Aug. 17, 2020, the entire disclosure of which is incorporated herein by reference.
- The present application is directed to a system that optically scans an environment, such as a building, and in particular to a portable system that generates two-dimensional (2D) floorplans of the scanned environment and that uses a vision-based sensor to facilitate automatic room segmentation for 2D floorplan annotation.
- The automated creation of digital 2D floorplans for existing structures is desirable as it allows the size and shape of the environment to be used in many processes. For example, a floorplan may be desirable to allow construction drawings to be prepared during a renovation. Such floorplans may find other uses such as in documenting a building for a fire department or to document a crime scene, in the planning of construction or remodeling of a building, and the like.
- Existing measurement systems typically use a scanning device that determines coordinates of surfaces in the environment by emitting a light and capturing a reflection to determine a distance, or by triangulation using cameras. These scanning devices are mounted to a movable structure, such as a cart, and moved through the building to generate a digital representation of the building. These systems tend to be more complex and require specialized personnel to perform the scan. Further, the scanning equipment including the movable structure may be bulky, which could further delay the scanning process in time sensitive situations, such as a crime or accident scene investigation.
- Further, human input is required to add context to digital 2D floorplans. Added context can include labeling objects such as windows and doors to extract wall lines for use in room segmentation. Additional added context that can be added by a user includes annotations such as room type labels (e.g., kitchen, living room, etc.). Current methods of manually labeling digital 2D floorplans can be time-consuming.
- Accordingly, while existing scanning systems are suitable for their intended purposes, what is needed is a system for having certain features of embodiments of the technical solutions described herein.
- According to one or more embodiments, a system for generating an automatically segmented and annotated two-dimensional (2D) map of an environment is described. The system includes a scanner configured to capture a 2D map comprising one or more point clouds comprising coordinate measurements of one or more points from the environment. The system further includes one or more processors operably coupled to the scanner, the one or more processors being responsive to executable instructions for converting the 2D map into a 2D image. The system further includes a mapping system configured to categorize a first set of pixels from the image into room-inside, room-outside, and noise by applying a trained neural network to the image. The mapping system further categorizes a first subset of pixels from the first set of pixels based on a room type, the first subset of pixels comprising pixels that are categorized as room-inside. The mapping system also determines the room type of a second subset of pixels from the first set of pixels based on the first subset of pixels by using a flooding algorithm. The mapping system further annotates a portion of the 2D map to identify the room type based on the room type associated with one or more pixels corresponding to the portion.
- The system further includes a portable computing device having a second image sensor, the portable computing device being coupled for communication to the one or more processors, wherein the one or more processors are responsive to correlate a location captured by a first image from the portable computing device with the location in the 2D map of the environment in response to the first image being acquired by the second image sensor.
- In one or more embodiments, the mapping system is further configured to perform automatic segmentation of the 2D image subsequent to the categorization of the pixels from the image.
- In one or more embodiments, the automatic segmentation is performed using one or more of morphological segmentation, Voronoi segmentation, and distance-based segmentation. The annotating further includes determining a label that identifies a type of an object and adding the label to the 2D map proximate to a location of the object.
- In one or more embodiments, the label of the object is wall, and the updating the 2D map includes adding the wall to the 2D map as a geometric element at the location.
- In one or more embodiments, the scanner is a 2D scanner disposed in a body of a housing, the housing being sized to be carried by a single person during operation, the body having a first plane extending there through.
- In other embodiments, the features of the system described herein can be implemented as a method, a computer program product, or any other form.
- These and other advantages and features will become more apparent from the following description taken in conjunction with the drawings.
- The subject matter, which is regarded as the invention, is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other features, and advantages of the invention are apparent from the following detailed description taken in conjunction with the accompanying drawings in which:
-
FIG. 1 is an illustration of two-dimensional (2D) maps of an area generated by a mapping system in accordance with an embodiment; -
FIG. 2 is a flow diagram of a process for utilizing output from a vision-based sensor in conjunction with scan data to facilitate automatic room segmentation in accordance with an embodiment; -
FIG. 3 is a schematic diagram of components of the flow diagram shown inFIG. 2 in accordance with an embodiment; -
FIG. 4 is a flow diagram of process for training an image classifier to recognize objects in image data in accordance with an embodiment; -
FIG. 5 depicts pixels to be categorized as noise in image data in accordance with an embodiment; -
FIG. 6 depicts an overview of the classes used to categories pixels of the image data from a 2D map according to one or more embodiments of the technical solutions described herein; -
FIG. 7 depicts a flow diagram of a method for generating a 2D map, including automatically segmenting rooms in the 2D map in accordance with an embodiment of the technical solutions described herein; -
FIG. 8 is an example of a 2D map generated using automatic segmentation that takes into account locations of doors and windows in accordance with an embodiment; -
FIG. 9 is a flow diagram of a process for annotating a 2D map in accordance with an embodiment; and -
FIGS. 10A-10R depict an embodiment of structure and usage of a 2D scanner in accordance with technical solutions described herein. - The detailed description explains embodiments of the technical solutions described herein, together with advantages and features, by way of example with reference to the drawings.
- The technical solutions described herein relate to a device that includes a system having a coordinate measurement scanner that works cooperatively with an inertial measurement unit and an image or vision-based sensor to generate a two-dimensional (2D) map of an environment. As used herein, the term “2D map” refers to a representation of the environment measured by a scanner. The 2D map can be represented internally as a grid map that includes a 2D arranged collection of cells, representing an area of the environment. The grid map stores, for every cell, a probability indicating whether the cell area is occupied or not.
- An embodiment of the technical solutions described herein provides a framework for automatically segmenting rooms and areas of interest in 2D floor plan maps using locations of doors and windows that are identified by applying artificial intelligence image recognition techniques to images captured by a vision-based sensor. In addition, room labels (e.g., “kitchen”, “living room”, “office”, etc.) can be automatically placed on a 2D map using the image recognition techniques described herein. Embodiments of the technical solutions described herein can be used for 2D floor planning, location-based documentation, automatic 2D floorplan labeling, and/or computer aided design (CAD) export. The ability to provide automatic segmentation and annotation of 2D maps can expedite the process of documenting buildings, crime scenes, and other locations.
- It should be appreciated that while embodiments herein describe the 2D map generation as being based on measurements by a 2D scanner, this is for exemplary purposes and the claims should not be so limited. In other embodiments, the 2D maps may be generated by data acquired by three-dimensional (3D) coordinate measurement devices, such as but not limited to a laser scanner, a laser tracker, a laser line probe, an image scanner or a triangulation scanner for example.
- For example, as shown in
FIG. 1 , a scan is performed using a coordinate measurement device, which generates an unsegmented andunlabeled 2D map 122 of a space inside of a building. Applying one or more contemporary segmentation techniques (e.g., morphological segmentation, Voronoi segmentation, and distance-based segmentation) results in2D map 123 with 125 and 127. The size and boundaries ofsegments 125 and 127 insegments 2D map 123 do not accurately reflect the actual rooms of the space that was scanned due, for example, to on anopen door 126 between 125 and 127 when the scan was taken.space - In existing systems, the
2D map 123 that is generated has to be manually edited, for example, using a software tool to obtain a floor plan. During such editing, a user identifies sections, for example, rooms, hallways, doors, windows, etc. in the2D map 123. Such identification may not be possible due to damaged or missing data in the2D map 123 in some situations. Also, once the rooms and other sections are identified in the floor plan annotations can be automatically added to the floor plan e.g. the room area. - Technical solutions provided by embodiments described herein provide more accurate segmentation of a scanned space by providing context to 2D maps prior to applying segmentation techniques.
2D map 124 inFIG. 1 is generated by adding context, such as locations of doors and windows, to2D map 122 prior to applying a segmentation technique. In an embodiment, objects such as doors and windows in the scanned space are identified by applying artificial intelligence image recognition techniques to a video stream generated by a vision-based sensor. The identifieddoor 126 is used to segment the space into a kitchen and a hallway. In addition, as shown in2D map 124, scan data in2D map 122 of locations outside of the identifiedwindow 128 are removed. In an embodiment, image recognition techniques are also used to identify objects in the image stream such as, but not limited to sinks, dishwashers, beds, and showers. The identified objects are used to automatically label the segmented areas. As shown in2D map 124, the areas are annotated with labels, for example, “kitchen” and “hallway.” In one or more embodiments of the technical solutions described herein, the areas are also annotated with information such as, area, dimensions, etc. The segmenting and labeling described herein are performed automatically and without user intervention. - Turning now to
FIG. 2 , a flow diagram 302 of a mapping system for utilizing output from a vision-based sensor in conjunction with scan data to facilitate automatic room segmentation is generally shown in accordance with an embodiment of the technical solutions described herein. The flow diagram shown inFIG. 2 automatically extracts wall lines (e.g., based on locations of windows and doors) from a 2D map and then performs automatic room segmentation based at least in part on the extracted wall lines. In addition, the processing shown inFIG. 2 can be utilized for providing descriptive labels for rooms in a floorplan of a 2D map based on contents of the rooms. - The 2D maps provided by the processes and apparatuses described above allow the user to capture the geometry/shape of a given environment. Embodiments described herein add additional context information to the 2D maps to describe the functionality of the different rooms in the environment as well as the location of additional geometric primitives (e.g., lines, etc.). Applying labels to a 2D map facilitates a user sharing information about the environment with others without having to spend time describing the 2D map. While the user that mapped the environment can identify the different regions and rooms of the environment in the 2D map, other users that were not present during the mapping task or in the same environment might struggle to link the different areas of the 2D floorplan to the different rooms of the mapped environment. An embodiment of the technical solutions described herein provides the processing flow shown in
FIG. 2 to allow a scanner, such as 2D scanner described herein, in conjunction with an image sensor to automatically identify rooms and areas of interest in a 2D map such as those shown in FIGS. herein. - As shown in
FIG. 2 , scandata 310 is generated by ascanner 304, andvideo stream data 308 is generated by an image or vision-basedsensor 303. Thescanner 304 can be implemented, for example, by 2D scanner described herein. In an embodiment, the vision-basedsensor 303 is implemented by a camera or video recorder or other image sensor located in a mobile computing device (e.g. personal digital assistant, cellular phone, tablet or laptop) carried by the operator for example. In an embodiment, the system 300 described above includes a holder (not shown) that couples the mobile computing device to the system 300. In an alternate embodiment, the vision-basedsensor 303 is implemented by the3D camera 1060. In still other embodiments, the vision-based sensor may be a 2D camera that is integral with thescanner 304. - As shown in
FIG. 2 , thescan data 310 is input to the2D map generator 314 and thevideo stream data 308 made up of individual images is input to anclassifier 306. As used herein, the term “video” or “video stream data” refers to a series of sequential images acquired by the vision-based sensor at a predetermined frame rate, such as 30 frames per second (fps) or 60 frames per second for example. Theclassifier 306 analyzes the images in thevideo stream data 308 to identify objects such as doors and windows. The identified objects 312 are output by theclassifier 306 and input to the2D map generator 314. The2D map generator 314 generates a 2D map using for example, the processing described herein. In addition, the 2D map is segmented into rooms, or areas, based at least in part on where the identifiedobjects 312 are located in the 2D map. For example, locations of the doors and windows can be added to the 2D map to define wall lines which can be used in segmenting the space into rooms and/or areas of interest. In an embodiment where a hand-held scanner is used, the location of the object in the image is determined by a mapping/localization algorithm executing on the hand-held scanner. When the object is detected, the object position can be determined by considering the hand-held scanner position and the mobile device position relative to the hand-held scanner. - Alternatively, or in addition, the system 300 uses algorithms that can segment data using either neural networks or filling algorithms or a combination of both, where such segmentation groups similar data from the 2D map. For this to be accomplished on a map captured by the scanner, in one or more embodiments of the technical solutions described herein, the map is converted into an image (pixel data). Subsequently, each pixel is assigned a type e.g. room-boundary or room-type by performing classification described above, e.g. using a neural network. Furthermore, the pixels, which have now been classified, can have subclasses like bathroom, bedroom, hallway etc. to be able to determine specific rooms. The results may be postprocessed e.g. by flooding algorithms to unify the pixels in one room, i.e., pixels of a particular type. The resulting segmentations are further used to identify different rooms and/or to try to make a classification of the room type. Thus, the rooms and other contents of the map can be identified from the 2D map data itself, without using images from the
video stream data 308 in this case. In one or more embodiments of the technical solutions described herein, the video stream data can be used to improve the results obtained from the map data itself. - In one or more embodiments of the technical solutions described herein, once the room and its boundaries are determined using the pixelated data, further annotations are added by converting the image back into the map. For example, the area of a room can be calculated and the label automatically added to the floor plan. Alternatively, labels added can include a name of the room, one or more contents of the room, and so on.
- In addition, to defining additional wall lines for use in automatic segmentation, the components shown in
FIG. 2 can be used to label the rooms in thesegmented 2D map 316 based on contents of the rooms as shown in thevideo stream data 308. For example, theclassifier 306 can be trained to recognize common household or office objects, and the2D map generator 314 can include logic that labels a room based on the objects that it contains. Thesegmented 2D map 316 is output by the2D map generator 314 to a user and/or to a storage device. - Turning now to
FIG. 3 , a schematic diagram 320 of components of the mapping system shown inFIG. 2 is generally shown in accordance with one or more embodiments of the technical solutions described herein. In the embodiment shown inFIG. 3 , all of the components are accessible via thenetwork 322. In another embodiment (not shown) the components shown inFIG. 2 are all located on the same system, such as system 300 described herein. In another embodiment, only a subset of the components shown inFIG. 2 is located on the system 300. For example, the vision-basedsensor 303 and thescanner 304 can both be located on the system 300, theclassifier 306 located on a first processor, and the2D map generator 314 located on a second processor. Other distribution of the components is possible in other embodiments. - The
network 322 shown inFIG. 3 can include one or more of any type of known networks including, but not limited to, a wide area network (WAN), a local area network (LAN), a global network (e.g. Internet), a virtual private network (VPN), and an intranet. Thenetwork 322 can include a private network in which access thereto is restricted to authorized members. Thenetwork 322 can be implemented using wireless networking technologies or any kind of physical network implementation known in the art. The components shown inFIG. 3 may be coupled to one or more other components through multiple networks (e.g., Internet, intranet, and private network) so that not all components are coupled to other components through thesame network 322. - In an embodiment, the artificial intelligence-based
classifier 306 is a neural network inference engine.FIG. 4 depicts a data flow of training theclassifier 306 according to one or more embodiments of the technical solutions described herein. As shown inFIG. 4 , training data includes labeledmaps 326 which include maps and their corresponding known segmentation labels that have been previously generated by a human analyst. For each <map, labels-set> pair in the labeledmaps 326, the 2D map data is input to theclassifier 306, and theclassifier 306 outputs a label of an identified object, or a predicated label. The predicted label for the known map is compared, by theclassifier training engine 330 to the known label. Based on the results of the comparison, theclassifier training engine 330 may update theclassifier 306. - The
classifier training engine 330 can use a loss function to compare a predicted label with a known label. The results of the comparison can be used by theclassifier training engine 330 to determine adjustments to neural network biases and weightings to improve accuracy and reduce the loss function. The determined adjustments are input to theclassifier 306. The process shown inFIG. 4 can be repeated iteratively to minimize the loss function and maximize the accuracy of predictions. In one or more embodiments of the technical solutions described herein, portions of the neural network shown inFIG. 4 are implemented by off-the-shelf software. For example, Python and C++ frameworks such as, but not limited to TensorFlow™, PyBrain, Theano, Torch, and Caffe can be used to implement the neural network. The neural network can include a combination of one or more types of neural networks, such as convolutional neural network (CNN), attention models, encoders, decoders, etc. Various neural network architectures can be used and trained to predict room boundaries, and room types using trainedlabel data 326. - In one or more embodiments of the technical solutions described herein, multiple neural networks can be used together to predict the room type. A first neural network can be used to identify room boundaries, and a second neural network can be used identify objects, or features in the
map 122. The room boundaries and the locations of the objects/features are used in conjunction to predict a room type. For example, consider a pixel that is identified to be inside-room, where the room boundary has a window, and the pixel is associated with an object like a bed, a dresser, an end-table, etc., results in that pixel to be labeled as ‘bedroom’. Further, a pixel that is associated with an office-desk is labeled as ‘office’, while a pixel that is associated with an oven is labeled as ‘kitchen’, etc. It should be noted that the brief description of using the neural networks together to predict the room type is just one example. Several neural network architectures, which can include different types of neural networks than those described herein, can be used to determine room types, without limiting the practical application(s) provided by embodiments described herein. - In an embodiment, the labeled
maps 326 used for training include 2D map data that is converted into image data, i.e., a set of pixels. In an embodiment, the labeledmaps 326 used for training include labels for this data that categorize each of the pixels into categories such as: inside-room, outside-room, and wrong measurements/noise. Here, the label “inside-room” identifies as the pixel being inside a particular room or area that is to be mapped (bedroom, bathroom, kitchen, hallway, etc.), the label “outside-room” identifies the pixel being outside any of the rooms that are to be mapped. The “wrong measurements/noise” class is used to identify pixels which belong to laser beams going through windows, or other transparent material, resulting in noise on the maps.Such noise 502 looks quite specific and is distinguishable from the actual data. An example ofsuch noise 502 in amap 122 is shown inFIG. 5 . - In one or more embodiments of the technical solutions described herein, room-inside pixels are further grouped into different types of rooms e.g. hallway, office, bathroom, production halls etc. The identification of these rooms can be performed based on type of content in the room. To be able to detect content of the rooms, one or more filters that are typically used by scanners, are reduced. Such reduction in the filters produces more data than usual, for content which is typically filtered out. Furthermore, the room boundaries are used to identify the room type of pixels nearby. The boundary classification or data from the network is made accessible to the
classifier 306 to facilitate such use of proximity information. -
FIG. 6 depicts an overview of the classes used to categories pixels of the image data from a 2D map according to one or more embodiments of the technical solutions described herein. It is understood that the categorization structure that is depicted is one possible example from several other possible categorizations. In the particular case depicted, the pixels are categorized as discussed herein, inside (602), outside (604), noise (606). The inside (602) category is further subclassified into particular rooms as discussed herein. In one or more embodiments of the technical solutions described herein, multiple neural networks, i.e.,classifiers 306 are trained for different applications e.g. one network for apartments, one for office buildings, one for single family homes, etc. to reduce the number of categories for asingle classifier 306. - Objects that can be helpful in identifying a descriptive label for a room in a 2D floorplan (e.g., kitchen, bathroom, etc.) can be further used by the
classifier 306 when making a prediction. For example, the room can be labeled as a bathroom if it has a shower or as a kitchen if it contains a stove. The labeled maps 326 that are used to train theclassifier 306 can be created by a third party in one or more embodiments of the technical solutions described herein. For example, builders, architects, etc. can provide their typical floor plans that are labeled to identify particular rooms. Alternatively, or in addition, the labeledmaps 326 include images converted from point cloud data that is captured by one or more scanners and labeled manually. - In embodiments, objects can also be recognized using methods such as region-based convolutional neural networks (R-CNNs) and you only look once (YOLO) real-time object recognition, or other methods that rely on qualitative spatial reasoning (QSR).
- Turning now to
FIG. 7 , a flow diagram of a method for generating a 2D map, including automatically segmenting rooms in the 2D map, is generally shown in accordance with an embodiment of the technical solutions described herein. Themethod 700 shown inFIG. 7 can be implemented by computer instructions executing on a processor. - The
method 700 includes capturing one or more point clouds that represent the environment that is to be scanned by the scanner, atblock 702. The point clouds are registered, aligned, merged, and/or a combination thereof, to obtain the2D map 122. Further, themethod 700 includes preprocessing the map, which includes converting the2D map 122 into an image, i.e., set of pixels, atblock 704. It should be noted that the image is separate from the images/video streams that are captured by an image sensor that is associated with the scanner. - Further, the
method 700 includes analyzing the image with theclassifier 306, which has already been trained using <map, label-set> training data, atblock 706. Theclassifier 306 labels each pixel in the image using the predetermined categories. First, each pixel is labeled as being inside-room, outside-room, or noise. Further, each pixel that is labeled as being inside-room, is labeled with a particular type of room, e.g., kitchen, hallway, bathroom, bedroom, etc. The outside-room pixels can represent the room boundaries, or a space in the environment that is not to be mapped, in one or more embodiments of the technical solutions described herein. The pixels that are recognized as being artifacts caused because of the scanner beams being reflected/refraction are classified as noise. - The
method 700 further includes segmenting the pixels in the image to determine all the pixels that are part of the same room, atblock 708. The segmentation includes grouping the pixels that are marked with the same labels together. For example, the pixels marked room-inside are in a first segment, the pixels marked room-outside are in a second segment, and the pixels marked noise are in a third segment. Further, the pixels in the segment corresponding to the label room-inside, are further segmented according to the type of room. For example, the pixels in the first segment are further grouped into pixels marked bedroom, hallway, kitchen, etc. - Types of automatic segmentation that can be applied include, but are not limited to morphological segmentation, Voronoi segmentation, and/or distance-based segmentation. In morphological segmentation erosion is iteratively applied to the 2D map (binary image). Whenever erosion is performed, the method looks for separate regions and marks them so they are not part of the search in the next iteration. Voronoi segmentation includes computing a Voronoi diagram over the 2D map. A Voronoi diagram includes the partitioning of a plane with n points into convex polygons such that each polygon contains exactly one generating point and every point in a given polygon is closer to its generating point than to any other point. The different points in the Voronoi diagram are then grouped, and for each group of points, a search for the point with the smallest distance to occupied cells in the 2D map is conducted, which is then connected to the two closest occupied cells, creating a “frontier.” This is performed to every group of points resulting in separation of the different areas of the map, each of these areas are then marked as a different room. In distance-base segmentation a distance transform is calculated over the 2D map in order to identify the center of the room (local maxima). The room centers are then labeled and extended into the non-labeled space using wave front propagation.
- Further, the
method 700 includes post-processing the image using pixels that have been associated with labels so far, atblock 710. For example, themethod 700 includes selecting a first pixel from the set of pixels that have been labeled with a room type. Further, themethod 700 includes using flooding algorithm to select, sequentially or in parallel, neighboring pixels of the first pixel. If a neighboring pixel is labeled already with a room type, that pixel is skipped at this time. If the neighboring pixel is not labeled with a room type, and if the neighboring pixel is room-inside based on the room boundaries, that neighboring pixel can be labels the same as the first pixel. Such flooding is repeated until all the labeled pixels are selected and their respective neighbors examined and labeled, if required. It should be noted that neighboring pixels that are labeled as room-outside or noise are not labeled with a room type. In this manner, all of the pixels are labeled with their respective room types (except the pixels that are outside-room or noise). - Further, once the room type and its boundaries are determined annotations are added, at
block 712. In one or more embodiments of the technical solutions described herein, the image is reconverted into themap 122. Alternatively, in one or more embodiments of the technical solutions described herein, the image with the labeled pixels is used as a reference to annotate themap 122. The type of room is used from the image and added to themap 122 as an annotation at corresponding position. The corresponding position is determined by registering the image with the2D map 122. Further, in one or more embodiments of the technical solutions described herein, dimensions of the room can be used to calculate features such as, the area of a room, and add such calculations automatically to themap 122 as part of the annotations. In one or more embodiments of the technical solutions described herein, the classification of the room boundary type, object types, etc., are also added as annotations to themap 122, for example, to identify windows, doors, walls, desks, beds, ovens, and other such objects/features. - The automatically segmented 2D map is output for storage in a storage device and/or output to a display.
- The technical solutions described herein identify features, including objects and room types, in the environment being scanned more accurately to reflect the actual environment when compared to contemporary approaches. Further, the technical solutions described herein can identify such features without using image sensor accessories, rather only using a scanner that captures point clouds that represent a 2D map of the environment.
-
FIG. 8 depicts an example of a2D map 802 that was automatically segmented and annotated in accordance with an embodiment of the technical solutions described herein. The2D map 802 inFIG. 8 is contrasted with2D map 122 shown inFIG. 1 , which is an example of a 2D map prior to performing any of the processing described herein. The segmented and annotatedmap 802 identifiesboundaries 810 of the rooms, and roomtypes using annotations 812 as well as visual attributes 814 (e.g., shading, color, etc.). In one or more embodiments of the technical solutions described herein, the annotations can further include dimensions, area, and other such attributes that can be identified using the scan data that is captured. Each of the room types can be assigned a specific visual attribute. - In an embodiment, the segmented and annotated
map 802 can be used for CAD export. The AI-based object recognition process and 2D map generation described previously identifies and labels door locations (not shown). - Turning now to
FIG. 9 , a flow diagram of a method for annotating a 2D map is generally shown in accordance with an embodiment. The process shown inFIG. 9 can be implemented by computer instructions executing on a processor. Descriptive labels for segments, or rooms, in the2D map 802 are generated using AI to identify objects in the room, and then by applying a label based on the identified objects. For example, if a room contains a stove and a refrigerator, then it can be given the label “kitchen”, and if the room contains a table and chairs but no stove or refrigerator then it can be labeled “dining room.” The labeling is not limited to households. For example, in a workplace, a room having an office chair and a computer monitor can be labeled “office” and a room having a long table and several office chairs can be labeled “conference room.” - At
block 902, scan data is received from a scanner, and corresponding video stream data is received from a vision-based sensor. Atblock 904, a2D map 802 is generated using for example, the processing described herein. The generated2D map 802 is segmented and pixels of the same type are grouped, however the room types are not annotated at this time. An example of the2D map 802 generated is shown inFIG. 8 . Atblock 906, theclassifier 306 identifies objects in the video stream data at locations in the2D map 802. Such object identification can be performed using known AI techniques, such as neural networks. Processing continues atblock 908 where the2D map 802 is annotated based on the identified objects. Atblock 910, the annotated2D map 802 is output for storage in a storage device and/or output to a display. An example of an annotated 2D map is2D map 124 ofFIG. 1 , and or the annotatedmap 802 inFIG. 8 . - In an embodiment, blocks 906-910 are performed after
block 710 inFIG. 7 to label rooms in an automatically segmented 2D map. - Referring now to
FIGS. 10A-10R , an embodiment of a2D scanner 1030 is shown having ahousing 1032 that includes abody portion 1034 and aremovable handle portion 1036. It should be appreciated that while the embodiment ofFIGS. 10A-10R illustrate the2D scanner 1030 with thehandle 1036 attached, thehandle 1036 may be removed before the2D scanner 1030 is coupled to thebase unit 302 when used in the embodiment shown. In an embodiment, thehandle 1036 may include anactuator 1038 that allows the operator to interact with thescanner 1030. In the exemplary embodiment, thebody 1034 includes a generallyrectangular center portion 1035 with aslot 1040 formed in anend 1042. Theslot 1040 is at least partially defined by apair walls 1044 that are angled towards asecond end 1048. As will be discussed in more detail herein, a portion of a2D laser scanner 1050 is arranged between thewalls 1044. Thewalls 1044 are angled to allow the2D laser scanner 1050 to operate by emitting a light over a large angular area without interference from thewalls 1044. As will be discussed in more detail herein, theend 1042 may further include a three-dimensional camera or RGBD camera. - Extending from the
center portion 1035 is amobile device holder 1041. Themobile device holder 1041 is configured to securely couple amobile device 1043 to thehousing 1032. Theholder 1041 may include one or more fastening elements, such as a magnetic or mechanical latching element for example, that couples themobile device 1043 to thehousing 1032. In an embodiment, themobile device 1043 is coupled to communicate with acontroller 1068. The communication between thecontroller 1068 and themobile device 1043 may be via any suitable communications medium, such as wired, wireless or optical communication mediums for example. - In the illustrated embodiment, the
holder 1041 is pivotally coupled to thehousing 1032, such that it may be selectively rotated into a closed position within arecess 1046. In an embodiment, therecess 1046 is sized and shaped to receive theholder 1041 with themobile device 1043 disposed therein. - In the exemplary embodiment, the
second end 1048 includes a plurality ofexhaust vent openings 1056. In an embodiment, shown inFIGS. 10F-I , theexhaust vent openings 1056 are fluidly coupled tointake vent openings 1058 arranged on abottom surface 1062 ofcenter portion 1035. Theintake vent openings 1058 allow external air to enter aconduit 1064 having anopposite opening 1066 in fluid communication with thehollow interior 1067 of thebody 1034. In an embodiment, theopening 1066 is arranged adjacent to acontroller 1068 which has one or more processors that is operable to perform the methods described herein. In an embodiment, the external air flows from theopening 1066 over or around thecontroller 1068 and out theexhaust vent openings 1056. - In an embodiment, the
controller 1068 is coupled to awall 1070 ofbody 1034. In an embodiment, thewall 1070 is coupled to or integral with thehandle 1036. Thecontroller 1068 is electrically coupled to the2D laser scanner 1050, the3D camera 1060, apower source 1072, an inertial measurement unit (IMU) 1074, a laser line projector 1076 (FIG. 10E ), and ahaptic feedback device 1077. - Referring now to
FIG. 10J , elements are shown of thescanner 1030 with themobile device 1043 installed or coupled to thehousing 1032.Controller 1068 is a suitable electronic device capable of accepting data and instructions, executing the instructions to process the data, and presenting the results. Thecontroller 1068 includes one ormore processing elements 1078. The processors may be microprocessors, field programmable gate arrays (FPGAs), digital signal processors (DSPs), and generally any device capable of performing computing functions. The one ormore processors 1078 have access tomemory 1080 for storing information. -
Controller 1068 is capable of converting the analog voltage or current level provided by2D laser scanner 1050,camera 1060 andIMU 1074 into a digital signal to determine a distance from thescanner 1030 to an object in the environment. In an embodiment, thecamera 1060 is a 3D or RGBD type camera.Controller 1068 uses the digital signals that act as input to various processes for controlling thescanner 1030. The digital signals represent one ormore scanner 1030 data including but not limited to distance to an object, images of the environment, acceleration, pitch orientation, yaw orientation and roll orientation. As will be discussed in more detail, the digital signals may be from components internal to thehousing 1032 or from sensors and devices located in themobile device 1043. - In general, when the
mobile device 1043 is not installed,controller 1068 accepts data from2D laser scanner 1050 andIMU 1074 and is given certain instructions for the purpose of generating a two-dimensional map of a scanned environment.Controller 1068 provides operating signals to the2D laser scanner 1050, thecamera 1060,laser line projector 1076 andhaptic feedback device 1077.Controller 1068 also accepts data fromIMU 1074, indicating, for example, whether the operator is operating in the system in the desired orientation. Thecontroller 1068 compares the operational parameters to predetermined variances (e.g. yaw, pitch or roll thresholds) and if the predetermined variance is exceeded, generates a signal that activates thehaptic feedback device 1077. The data received by thecontroller 1068 may be displayed on a user interface coupled tocontroller 1068. The user interface may be one or more LEDs (light-emitting diodes) 1082, an LCD (liquid-crystal diode) display, a CRT (cathode ray tube) display, or the like. A keypad may also be coupled to the user interface for providing data input tocontroller 1068. In one embodiment, the user interface is arranged or executed on themobile device 1043. - The
controller 1068 may also be coupled to external computer networks such as a local area network (LAN) and the Internet. A LAN interconnects one or more remote computers, which are configured to communicate withcontrollers 1068 using a well-known computer communications protocol such as TCP/IP (Transmission Control Protocol/Internet({circumflex over ( )}) Protocol), RS-232, ModBus, and the like.Additional scanners 1030 may also be connected to LAN with thecontrollers 1068 in each of thesescanners 1030 being configured to send and receive data to and from remote computers andother scanners 1030. The LAN may be connected to the Internet. This connection allowscontroller 1068 to communicate with one or more remote computers connected to the Internet. - The
processors 1078 are coupled tomemory 1080. Thememory 1080 may include random access memory (RAM)device 1084, a non-volatile memory (NVM) device 1086, a read-only memory (ROM)device 1088. In addition, theprocessors 1078 may be connected to one or more input/output (I/O)controllers 1090 and acommunications circuit 1092. In an embodiment, thecommunications circuit 1092 provides an interface that allows wireless or wired communication with one or more external devices or networks, such as the LAN discussed above or thecommunications circuit 1018. -
Controller 1068 includes operation control methods embodied in application code. These methods are embodied in computer instructions written to be executed byprocessors 1078, typically in the form of software. The software can be encoded in any language, including, but not limited to, assembly language, VHDL (Verilog Hardware Description Language), VHSIC HDL (Very High Speed IC Hardware Description Language), Fortran (formula translation), C, C++, C#, Objective-C, Visual C++, Java, ALGOL (algorithmic language), BASIC (beginners all-purpose symbolic instruction code), visual BASIC, ActiveX, HTML (HyperText Markup Language), Python, Ruby and any combination or derivative of at least one of the foregoing. - Coupled to the
controller 1068 is the2D laser scanner 1050. The2D laser scanner 1050 measures 2D coordinates in a plane. In the exemplary embodiment, the scanning is performed by steering light within a plane to illuminate object points in the environment. The2D laser scanner 1050 collects the reflected (scattered) light from the object points to determine 2D coordinates of the object points in the 2D plane. In an embodiment, the2D laser scanner 1050 scans a spot of light over an angle while at the same time measuring an angle value and corresponding distance value to each of the illuminated object points. - Examples of
2D laser scanners 1050 include, but are not limited to Model LMS100 scanners manufactured by Sick, Inc. of Minneapolis, Minn. and scanner Models URG-04LX-UG01 and UTM-30LX manufactured by Hokuyo Automatic Co., Ltd of Osaka, Japan. The scanners in the Sick LMS100 family measure angles over a 270-degree range and over distances up to 20 meters. The Hoyuko model URG-04LX-UG01 is a low-cost 2D scanner that measures angles over a 240-degree range and distances up to 20 meters. The Hoyuko model UTM-30LX is a 2D scanner that measures angles over a 270-degree range and to distances up to 30 meters. It should be appreciated that the above 2D scanners are exemplary and other types of 2D scanners are also available. - In an embodiment, the
2D laser scanner 1050 is oriented so as to scan a beam of light over a range of angles in a generally horizontal plane (relative to the floor of the environment being scanned). At instants in time the2D laser scanner 1050 returns an angle reading and a corresponding distance reading to provide 2D coordinates of object points in the horizontal plane. In completing one scan over the full range of angles, the 2D laser scanner returns a collection of paired angle and distance readings. As the platform is moved from place to place, the2D laser scanner 1050 continues to return 2D coordinate values. These 2D coordinate values are used to locate the position of thescanner 1030 thereby enabling the generation of a two-dimensional map or floorplan of the environment. - Also coupled to the controller 1086 is the
IMU 1074. TheIMU 1074 is a position/orientation sensor that may include accelerometers 1094 (inclinometers),gyroscopes 1096, a magnetometer orcompass 1098, and altimeters. In the exemplary embodiment, theIMU 1074 includesmultiple accelerometers 1094 andgyroscopes 1096. Thecompass 1098 indicates a heading based on changes in magnetic field direction relative to the earth's magnetic north. TheIMU 1074 may further have an altimeter that indicates altitude (height). An example of a widely used altimeter is a pressure sensor. By combining readings from a combination of position/orientation sensors with a fusion algorithm that may include a Kalman filter, relatively accurate position and orientation measurements can be obtained using relatively low-cost sensor devices. In the exemplary embodiment, theIMU 1074 determines the pose or orientation of thescanner 108 about three-axis to allow a determination of a yaw, roll and pitch parameter. - In the embodiment shown, the
scanner 1030 further includes acamera 1060 that is a 3D or RGB-D camera. As used herein, the term 3D camera refers to a device that produces a two-dimensional image that includes distances to a point in the environment from the location ofscanner 1030. The3D camera 1060 may be a range camera or a stereo camera. In an embodiment, the3D camera 1060 includes an RGB-D sensor that combines color information with a per-pixel depth information. In an embodiment, the3D camera 1060 may include aninfrared laser projector 1031, a leftinfrared camera 1033, a rightinfrared camera 1039, and acolor camera 1037. In an embodiment, the3D camera 1060 is a RealSense™ camera model R200 manufactured by Intel Corporation. - In an embodiment, when the
mobile device 1043 is coupled to thehousing 1032, themobile device 1043 becomes an integral part of thescanner 1030. In an embodiment, themobile device 1043 is a cellular phone, a tablet computer or a personal digital assistant (PDA). Themobile device 1043 may be coupled for communication via a wired connection, such as 1001, 1002. Theports port 1001 is coupled for communication to theprocessor 1078, such as via I/O controller 1090 for example. The 1001, 1002 may be any suitable port, such as but not limited to USB, USB-A, USB-B, USB-C, IEEE 13910 (Firewire), or Lightning™ connectors.ports - The
mobile device 1043 is a suitable electronic device capable of accepting data and instructions, executing the instructions to process the data, and presenting the results. Themobile device 1043 includes one ormore processors 1004. Theprocessors 1004 may be microprocessors, field programmable gate arrays (FPGAs), digital signal processors (DSPs), and generally any device capable of performing computing functions. The one ormore processors 1004 have access tomemory 1006 for storing information. - The
mobile device 1043 is capable of converting the analog voltage or current level provided bysensors 1008 andprocessor 1078.Mobile device 1043 uses the digital signals that act as input to various processes for controlling thescanner 1030. The digital signals represent one or more platform data including but not limited to distance to an object, images of the environment, acceleration, pitch orientation, yaw orientation, roll orientation, global position, ambient light levels, and altitude for example. - In general,
mobile device 1043 accepts data fromsensors 1008 and is given certain instructions for the purpose of generating or assisting theprocessor 1078 in the generation of a two-dimensional map or three-dimensional map of a scanned environment.Mobile device 1043 provides operating signals to theprocessor 1078, thesensors 1008 and adisplay 1010.Mobile device 1043 also accepts data fromsensors 1008, indicating, for example, to track the position of themobile device 1043 in the environment or measure coordinates of points on surfaces in the environment. Themobile device 1043 compares the operational parameters to predetermined variances (e.g. yaw, pitch or roll thresholds) and if the predetermined variance is exceeded, may generate a signal. The data received by themobile device 1043 may be displayed ondisplay 1010. In an embodiment, thedisplay 1010 is a touch screen device that allows the operator to input data or control the operation of thescanner 1030. - The
controller 1068 may also be coupled to external networks such as a local area network (LAN), a cellular network and the Internet. A LAN interconnects one or more remote computers, which are configured to communicate with controller 68 using a well-known computer communications protocol such as TCP/IP (Transmission Control Protocol/Internet({circumflex over ( )}) Protocol), RS-232, ModBus, and the like.Additional scanners 1030 may also be connected to LAN with thecontrollers 1068 in each of thesescanners 1030 being configured to send and receive data to and from remote computers andother scanners 1030. The LAN may be connected to the Internet. This connection allowscontroller 1068 to communicate with one or more remote computers connected to the Internet. - The
processors 1004 are coupled tomemory 1006. Thememory 1006 may include random access memory (RAM) device, a non-volatile memory (NVM) device, and a read-only memory (ROM) device. In addition, theprocessors 1004 may be connected to one or more input/output (I/O)controllers 1012 and acommunications circuit 1014. In an embodiment, thecommunications circuit 1014 provides an interface that allows wireless or wired communication with one or more external devices or networks, such as the LAN or the cellular network discussed above. -
Controller 1068 includes operation control methods embodied in application code. These methods are embodied in computer instructions written to be executed by 1078, 1004, typically in the form of software. The software can be encoded in any language, including, but not limited to, assembly language, VHDL (Verilog Hardware Description Language), VHSIC HDL (Very High Speed IC Hardware Description Language), Fortran (formula translation), C, C++, C#, Objective-C, Visual C++, Java, ALGOL (algorithmic language), BASIC (beginners all-purpose symbolic instruction code), visual BASIC, ActiveX, HTML (HyperText Markup Language), Python, Ruby and any combination or derivative of at least one of the foregoing.processors - Also coupled to the
processor 1004 are thesensors 1008. Thesensors 1008 may include but are not limited to: amicrophone 1016; aspeaker 1018; a front or rear facingcamera 1020; accelerometers 1022 (inclinometers),gyroscopes 1024, a magnetometers orcompass 1026; a global positioning satellite (GPS)module 1028; abarometer 1029; aproximity sensor 1027; and anambient light sensor 1025. By combining readings from a combination ofsensors 1008 with a fusion algorithm that may include a Kalman filter, relatively accurate position and orientation measurements can be obtained. - It should be appreciated that the
1060, 1074 integrated into thesensors scanner 1030 may have different characteristics than thesensors 1008 ofmobile device 1043. For example, the resolution of the 1060, 1020 may be different, or thecameras 1094, 1022 may have different dynamic ranges, frequency response, sensitivity (mV/g) or temperature parameters (sensitivity or range). Similarly, theaccelerometers 1096, 1024 or compass/magnetometer may have different characteristics. It is anticipated that in some embodiments, one orgyroscopes more sensors 1008 in themobile device 1043 may be of higher accuracy than the correspondingsensors 1074 in thescanner 1030. As described in more detail herein, in some embodiments theprocessor 1078 determines the characteristics of each of thesensors 1008 and compares them with the corresponding sensors in thescanner 1030 when the mobile device. Theprocessor 1078 then selects which 1074, 1008 are used during operation. In some embodiments, thesensors mobile device 1043 may have additional sensors (e.g. microphone 1016, camera 1020) that may be used to enhance operation compared to operation of thescanner 1030 without themobile device 1043. In still further embodiments, thescanner 1030 does not include theIMU 1074 and theprocessor 1078 uses thesensors 1008 for tracking the position and orientation/pose of thescanner 1030. In still further embodiments, the addition of themobile device 1043 allows thescanner 1030 to utilize thecamera 1020 to perform three-dimensional (3D) measurements either directly (using an RGB-D camera) or using photogrammetry techniques to generate 3D maps. In an embodiment, theprocessor 1078 uses the communications circuit (e.g. a cellular 10G internet connection) to transmit and receive data from remote computers or devices. - In an embodiment, the
scanner 1030 determines a quality attribute/parameter for the tracking of thescanner 1030 and/or the platform 100. In an embodiment, the tracking quality attribute is a confidence level in the determined tracking positions and orientations to actual positions and orientations. When the confidence level crosses a threshold, thescanner 1030 may provide feedback to the operator to perform a stationary scan. It should be appreciated that a stationary scan will provide a highly accurate measurements that will allow the determination of the position and orientation of the scanner or platform with a high level of confidence. In an embodiment, the feedback is provided via a user interface. The user interface may be on thescanner 1030, or a platform associated with thescanner 1030. - In the exemplary embodiment, the
scanner 1030 is a handheld portable device that is sized and weighted to be carried by a single person during operation. Therefore, theplane 1009 in which the2D laser scanner 1050 projects a light beam may not be horizontal relative to the floor or may continuously change as the computer moves during the scanning process. Thus, the signals generated by theaccelerometers 1094,gyroscopes 1096 and compass 1098 (or the corresponding sensors 1008) may be used to determine the pose (yaw, roll, tilt) of thescanner 108 and determine the orientation of theplane 1051. - In an embodiment, it may be desired to maintain the pose of the scanner 1030 (and thus the plane 1009) within predetermined thresholds relative to the yaw, roll and pitch orientations of the
scanner 1030. In an embodiment, ahaptic feedback device 1077 is disposed within thehousing 1032, such as in thehandle 1036. Thehaptic feedback device 1077 is a device that creates a force, vibration or motion that is felt or heard by the operator. Thehaptic feedback device 1077 may be, but is not limited to: an eccentric rotating mass vibration motor or a linear resonant actuator for example. The haptic feedback device is used to alert the operator that the orientation of the light beam from2D laser scanner 1050 is equal to or beyond a predetermined threshold. In operation, when theIMU 1074 measures an angle (yaw, roll, pitch or a combination thereof), thecontroller 1068 transmits a signal to amotor controller 1038 that activates avibration motor 1045. Since the vibration originates in thehandle 1036, the operator will be notified of the deviation in the orientation of thescanner 1030. The vibration continues until thescanner 1030 is oriented within the predetermined threshold or the operator releases theactuator 1038. In an embodiment, it is desired for theplane 1009 to be within 10-15 degrees of horizontal (relative to the ground) about the yaw, roll and pitch axes. - In an embodiment, the
2D laser scanner 1050 makes measurements as thescanner 1030 is moved around in an environment, such from afirst position 1011 to asecond registration position 1072. In an embodiment, the scan data is collected and processed as thescanner 1030 passes through a plurality of 2D measuring positions 1021. At each measuringposition 1021, the2D laser scanner 1050 collects 2D coordinate data over aneffective FOV 1005. Using methods described in more detail below, thecontroller 1068 uses 2D scan data from the plurality of 2D scans atpositions 1021 to determine a position and orientation of thescanner 1030 as it is moved about the environment. In an embodiment, the common coordinate system is represented by 2D Cartesian coordinates x, y and by an angle of rotation θ relative to the x or y axis. In an embodiment, the x and y axes lie in the plane of the 2D scanner and may be further based on a direction of a “front” of the2D laser scanner 1050. -
FIG. 10M shows thescanner 1030 collecting 2D scan data at selectedpositions 1021 over aneffective FOV 1005. Atdifferent positions 1021, the2D laser scanner 1050 captures a portion of theobject 1015 marked A, B, C, D, and E (FIG. 10L ).FIG. 10M shows2D laser scanner 1050 moving in time relative to a fixed frame of reference of theobject 1015. -
FIG. 10M includes the same information asFIG. 10L but shows it from the frame of reference of thescanner 1030 rather than the frame of reference of theobject 1015.FIG. 10M illustrates that in thescanner 1030 frame of reference, the position of features on the object change over time. Therefore, the distance traveled by thescanner 1030 can be determined from the 2D scan data sent from the2D laser scanner 1050 to thecontroller 1068. - As the
2D laser scanner 1050 takes successive 2D readings and performs best-fit calculations, thecontroller 1068 keeps track of the translation and rotation of the2D laser scanner 1050, which is the same as the translation and rotation of thescanner 1030. In this way, thecontroller 1068 is able to accurately determine the change in the values of x, y, θ as thescanner 1030 moves from thefirst position 1011 to thesecond position 1021. - In an embodiment, the
controller 1068 is configured to determine a first translation value, a second translation value, along with first and second rotation values (yaw, roll, pitch) that, when applied to a combination of the first 2D scan data and second 2D scan data, results in transformed first 2D data that closely matches transformed second 2D data according to an objective mathematical criterion. In general, the translation and rotation may be applied to the first scan data, the second scan data, or to a combination of the two. For example, a translation applied to the first data set is equivalent to a negative of the translation applied to the second data set in the sense that both actions produce the same match in the transformed data sets. An example of an “objective mathematical criterion” is that of minimizing the sum of squared residual errors for those portions of the scan data determined to overlap. Another type of objective mathematical criterion may involve a matching of multiple features identified on the object. For example, such features might be the edge transitions 1052, 1053, and 1054. The mathematical criterion may involve processing of the raw data provided by the2D laser scanner 1050 to thecontroller 1068, or it may involve a first intermediate level of processing in which features are represented as a collection of line segments using methods that are known in the art, for example, methods based on the Iterative Closest Point (ICP). Such a method based on ICP is described in Censi, A., “An ICP variant using a point-to-line metric,” IEEE International Conference on Robotics and Automation (ICRA) 2008, which is incorporated by reference herein. - In an embodiment, assuming that the
plane 1009 of the light beam from2D laser scanner 1050 remains horizontal relative to the ground plane, the first translation value is dx, the second translation value is dy, and the first rotation value dθ. If the first scan data is collected with the2D laser scanner 1050 having translational and rotational coordinates (in a reference coordinate system) of (x1, y1, θ1), then when the second 2D scan data is collected at a second location the coordinates are given by (x2, y2, θ2)=(x1+dx, y1+dy, θ1+dθ). In an embodiment, thecontroller 1068 is further configured to determine a third translation value (for example, dz) and a second and third rotation values (for example, pitch and roll). The third translation value, second rotation value, and third rotation value may be determined based at least in part on readings from theIMU 1074. - The
2D laser scanner 1050 collects 2D scan data starting at thefirst position 1011 and more 2D scan data at thesecond position 1021. In some cases, these scans may suffice to determine the position and orientation of thescanner 1030 at thesecond position 1021 relative to thefirst position 1011. In other cases, the two sets of 2D scan data are not sufficient to enable thecontroller 1068 to accurately determine the first translation value, the second translation value, and the first rotation value. This problem may be avoided by collecting 2D scan data at intermediate scan positions 1013. In an embodiment, the 2D scan data is collected and processed at regular intervals, for example, once per second. In this way, features in the environment are identified in successive 2D scans atpositions 1013. In an embodiment, when more than two 2D scans are obtained, thecontroller 1068 may use the information from all the successive 2D scans in determining the translation and rotation values in moving from thefirst position 1011 to thesecond position 1021. In another embodiment, only the first and last scans in the final calculation, simply using the intermediate 2D scans to ensure proper correspondence of matching features. In most cases, accuracy of matching is improved by incorporating information from multiple successive 2D scans. - It should be appreciated that as the
scanner 1030 is moved beyond thesecond position 1021, a two-dimensional image or map of the environment being scanned may be generated. It should further be appreciated that in addition to generating a 2D map of the environment, the data fromscanner 1030 may be used to generate (and store) a 2D trajectory of thescanner 1030 as it is moved through the environment. In an embodiment, the 2D map and/or the 2D trajectory may be combined or fused with data from other sources in the registration of measured 3D coordinates. It should be appreciated that the 2D trajectory may represent a path followed by the2D scanner 1030. - Referring now to
FIG. 10N , amethod 1007 is shown for generating a two-dimensional map with annotations. Themethod 1007 starts inblock 1007A where the facility or area is scanned to acquirescan data 1075, such as that shown inFIG. 10O . The scanning is performed by carrying thescanner 1030 through the area to be scanned. Thescanner 1030 measures distances from thescanner 1030 to an object, such as a wall for example, and also a pose of thescanner 1030 in an embodiment the user interacts with thescanner 1030 viaactuator 1038. In the illustrated embodiments, themobile device 1043 provides a user interface that allows the operator to initiate the functions and control methods described herein. Using the registration process desired herein, the two-dimensional locations of the measured points on the scanned objects (e.g. walls, doors, windows, cubicles, file cabinets etc.) may be determined. It is noted that the initial scan data may include artifacts, such as data that extends through awindow 1085 or anopen door 1089 for example. Therefore, thescan data 1075 may include additional information that is not desired in a 2D map or layout of the scanned area. - The
method 1007 then proceeds to block 1007B where a2D map 1079 is generated of the scanned area as shown inFIG. 10N . The generated2D map 1079 represents a scan of the area, such as in the form of a floor plan without the artifacts of the initial scan data. It should be appreciated that the2D map 1079 represents a dimensionally accurate representation of the scanned area that may be used to determine the position and pose of the mobile scanning platform in the environment to allow the registration of the 3D coordinate points measured by the 3D measurement device 110. In the embodiment ofFIG. 10N , themethod 1007 then proceeds to block 1007C where optional user-defined annotations are made to the2D maps 1079 to define an annotated 2D map that includes information, such as dimensions of features, the location of doors, the relative positions of objects (e.g. liquid oxygen tanks, entrances/exits or egresses or other notable features such as but not limited to the location of automated sprinkler systems, knox or key boxes, or fire department connection points (“FDC”). In an embodiment, the annotation may also be used to define scan locations where the mobile scanning platform stops and uses thescanner 1030 to perform a stationary scan of the environment. - Once the annotations of the 2D annotated map are completed, the
method 1007 then proceeds to block 1007D where the 2D map is stored in memory, such asnonvolatile memory 1087 for example. The 2D map may also be stored in a network accessible storage device or server so that it may be accessed by the desired personnel. - Referring now to
FIG. 10Q andFIG. 10R an embodiment is illustrated with themobile device 1043 coupled to thescanner 1030. As described herein, the2D laser scanner 1050 emits a beam of light in theplane 1009. The2D laser scanner 1050 has a field of view (FOV) that extends over an angle that is less than 360 degrees. In the exemplary embodiment, the FOV of the 2D laser scanner is about 270 degrees. In this embodiment, themobile device 1043 is coupled to thehousing 1032 adjacent the end where the2D laser scanner 1050 is arranged. Themobile device 1043 includes a forward-facingcamera 1020. Thecamera 1020 is positioned adjacent a top side of the mobile device and has a predetermined field ofview 1005. In the illustrated embodiment, theholder 1041 couples themobile device 1043 on anobtuse angle 1003. This arrangement allows themobile device 1043 to acquire images of the floor and the area directly in front of the scanner 1030 (e.g. the direction the operator is moving the platform). - In embodiments where the
camera 1020 is an RGB-D type camera, three-dimensional coordinates of surfaces in the environment may be directly determined in a mobile device coordinate frame of reference. In an embodiment, theholder 1041 allows for the mounting of themobile device 1043 in a stable position (e.g. no relative movement) relative to the2D laser scanner 1050. When themobile device 1043 is coupled to thehousing 1032, theprocessor 1078 performs a calibration of themobile device 1043 allowing for a fusion of the data fromsensors 1008 with the sensors ofscanner 1030. As a result, the coordinates of the 2D laser scanner may be transformed into the mobile device coordinate frame of reference or the 3D coordinates acquired bycamera 1020 may be transformed into the 2D scanner coordinate frame of reference. - In an embodiment, the mobile device is calibrated to the
2D laser scanner 1050 by assuming the position of the mobile device based on the geometry and position of theholder 1041 relative to2D laser scanner 1050. In this embodiment, it is assumed that the holder that causes the mobile device to be positioned in the same manner. It should be appreciated that this type of calibration may not have a desired level of accuracy due to manufacturing tolerance variations and variations in the positioning of themobile device 1043 in theholder 1041. In another embodiment, a calibration is performed each time a differentmobile device 1043 is used. In this embodiment, the user is guided (such as via the user interface/display 1010) to direct thescanner 1030 to scan a specific object, such as a door, that can be readily identified in the laser readings of thescanner 1030 and in the camera-sensor 1020 using an object recognition method. - The term “about” is intended to include the degree of error associated with measurement of the particular quantity based upon the equipment available at the time of filing the application. For example, “about” can include a range of ±8% or 5%, or 2% of a given value.
- The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, element components, and/or groups thereof.
- While the invention has been described in detail in connection with only a limited number of embodiments, it should be readily understood that the invention is not limited to such disclosed embodiments. Rather, the invention can be modified to incorporate any number of variations, alterations, substitutions or equivalent arrangements not heretofore described, but which are commensurate with the spirit and scope of the invention. Additionally, while various embodiments of the invention have been described, it is to be understood that aspects of the invention may include only some of the described embodiments. Accordingly, the invention is not to be seen as limited by the foregoing description but is only limited by the scope of the appended claims.
Claims (18)
1. A system of generating an automatically segmented and annotated two-dimensional (2D) map of an environment, the system comprising:
a scanner configured to capture a 2D map comprising one or more point clouds comprising coordinate measurements of one or more points from the environment;
one or more processors operably coupled to the scanner, the one or more processors being responsive to executable instructions for converting the 2D map into a 2D image; and
a mapping system configured to:
categorize a first set of pixels from the image into room-inside, room-outside, and noise by applying a trained neural network to the image;
further categorize a first subset of pixels from the first set of pixels based on a room type, the first subset of pixels comprising pixels that are categorized as room-inside;
determine the room type of a second subset of pixels from the first set of pixels based on the first subset of pixels by using a flooding algorithm;
annotate a portion of the 2D map to identify the room type based on the room type associated with one or more pixels corresponding to the portion; and
segment the 2D image based on the categorization of the pixels from the image.
2. The system of claim 1 , further comprising a portable computing device having a second image sensor, the portable computing device being coupled for communication to the one or more processors, wherein the one or more processors are responsive to correlate a location captured by a first image from the portable computing device with the location in the 2D map of the environment in response to the first image being acquired by the second image sensor.
3. The system of claim 1 , wherein the automatic segmentation is performed using one or more of morphological segmentation, Voronoi segmentation, and distance-based segmentation.
4. The system of claim 1 , wherein the annotating further comprises determining a label that identifies a type of an object and adding the label to the 2D map proximate to a location of the object.
5. The system of claim 4 , wherein the label of the object is wall, the updating the 2D map includes adding the wall to the 2D map as a geometric element at the location.
6. The system of claim 1 , wherein the scanner is a 2D scanner disposed in a body of a housing, the housing being sized to be carried by a single person during operation, the body having a first plane extending there through.
7. A method for generating a two-dimensional (2D) map of an environment, the method comprising:
capturing, by a scanner, a 2D map comprising one or more point clouds comprising coordinate measurements of one or more points from the environment;
converting the 2D map into a 2D image by one or more processors operably coupled to the scanner, the one or more processors being responsive to executable instructions;
categorizing a first set of pixels from the image into room-inside, room-outside, and noise by applying a trained neural network to the image;
further categorizing a first subset of pixels from the first set of pixels based on a room type, the first subset of pixels comprising pixels that are categorized as room-inside;
determining the room type of a second subset of pixels from the first set of pixels based on the first subset of pixels by using a flooding algorithm;
annotating a portion of the 2D map to identify the room type based on the room type associated with one or more pixels corresponding to the portion; and
segmenting the 2D image subsequent to the categorization of the pixels from the image.
8. The method of claim 7 , further comprising a portable computing device having a second image sensor, the portable computing device being coupled for communication to the one or more processors, wherein the one or more processors are responsive to correlate a location captured by a first image from the portable computing device with the location in the 2D map of the environment in response to the first image being acquired by the second image sensor.
9. The method of claim 7 , wherein the automatic segmentation is performed using one or more of morphological segmentation, Voronoi segmentation, and distance-based segmentation.
10. The method of claim 7 , wherein the annotating further comprises determining a label that identifies a type of an object and adding the label to the 2D map proximate to the location.
11. The method of claim 10 , wherein the label of the object is wall, the updating the 2D map includes adding the wall to the 2D map as a geometric element at a location of the object.
12. The method of claim 7 , wherein the scanner is a 2D scanner disposed in a body of a housing, the housing being sized to be carried by a single person during operation, the body having a first plane extending there through.
13. A computer program product comprising a memory device with computer executable instructions stored thereon, which when executed by one or more processing units causes the one or more processing units to execute a method for generating a two-dimensional (2D) map of an environment, the method comprising:
receiving a 2D map comprising one or more point clouds comprising coordinate measurements of one or more points from the environment captured by a scanner;
converting the 2D map into a 2D image by one or more processors operably coupled to the scanner;
categorizing a first set of pixels from the image into room-inside, room-outside, and noise by applying a trained neural network to the image;
further categorizing a first subset of pixels from the first set of pixels based on a room type, the first subset of pixels comprising pixels that are categorized as room-inside;
determining the room type of a second subset of pixels from the first set of pixels based on the first subset of pixels by using a flooding algorithm;
annotating a portion of the 2D map to identify the room type based on the room type associated with one or more pixels corresponding to the portion; and
segmenting the 2D image subsequent to the categorization of the pixels from the image.
14. The computer program product of claim 13 , further comprising a portable computing device having a second image sensor, the portable computing device being coupled for communication to the one or more processors, wherein the one or more processors are responsive to correlate a location captured by a first image from the portable computing device with the location in the 2D map of the environment in response to the first image being acquired by the second image sensor.
15. The computer program product of claim 13 , wherein the annotating further comprises determining a label that identifies a type of an object and adding the label to the 2D map proximate to a location of the object.
16. The computer program product of claim 15 , wherein the label of the object is wall, the updating the 2D map includes adding the wall to the 2D map as a geometric element at the location.
17. The computer program product of claim 13 , wherein the scanner is a 2D scanner disposed in a body of a housing, the housing being sized to be carried by a single person during operation, the body having a first plane extending there through.
18. The computer program product of claim 13 , wherein the automatic segmentation is performed using one or more of morphological segmentation, Voronoi segmentation, and distance-based segmentation.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US17/965,902 US20230033632A1 (en) | 2020-08-17 | 2022-10-14 | System and method of automatic room segmentation for two-dimensional laser floorplans |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202063066443P | 2020-08-17 | 2020-08-17 | |
| US17/325,947 US11501478B2 (en) | 2020-08-17 | 2021-05-20 | System and method of automatic room segmentation for two-dimensional laser floorplans |
| US17/965,902 US20230033632A1 (en) | 2020-08-17 | 2022-10-14 | System and method of automatic room segmentation for two-dimensional laser floorplans |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US17/325,947 Continuation US11501478B2 (en) | 2020-08-17 | 2021-05-20 | System and method of automatic room segmentation for two-dimensional laser floorplans |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| US20230033632A1 true US20230033632A1 (en) | 2023-02-02 |
Family
ID=80224298
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US17/325,947 Active US11501478B2 (en) | 2020-08-17 | 2021-05-20 | System and method of automatic room segmentation for two-dimensional laser floorplans |
| US17/965,902 Abandoned US20230033632A1 (en) | 2020-08-17 | 2022-10-14 | System and method of automatic room segmentation for two-dimensional laser floorplans |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US17/325,947 Active US11501478B2 (en) | 2020-08-17 | 2021-05-20 | System and method of automatic room segmentation for two-dimensional laser floorplans |
Country Status (1)
| Country | Link |
|---|---|
| US (2) | US11501478B2 (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP4446910A1 (en) * | 2023-04-14 | 2024-10-16 | Hubstar International Limited | System and method for space classification |
| US20250036141A1 (en) * | 2021-11-30 | 2025-01-30 | Electronics And Telecommunications Research Institute | Rail detection apparatus and method for autonomous driving of mobile robot in greenhouse environment |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112785643B (en) * | 2021-02-02 | 2025-06-13 | 武汉科技大学 | A method for constructing two-dimensional semantic maps of indoor corners based on a robot platform |
| CN114547749B (en) * | 2022-03-03 | 2023-03-24 | 如你所视(北京)科技有限公司 | House type prediction method, device and storage medium |
| WO2024102412A1 (en) * | 2022-11-09 | 2024-05-16 | Cribsee Inc. | Architectural floor plan estimation |
Family Cites Families (78)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5988862A (en) | 1996-04-24 | 1999-11-23 | Cyra Technologies, Inc. | Integrated system for quickly and accurately imaging and modeling three dimensional objects |
| US6748112B1 (en) | 1998-07-28 | 2004-06-08 | General Electric Company | Method and apparatus for finding shape deformations in objects having smooth surfaces |
| CA2278108C (en) | 1999-07-20 | 2008-01-29 | The University Of Western Ontario | Three-dimensional measurement method and apparatus |
| US7257249B2 (en) | 2002-06-12 | 2007-08-14 | Spatial Integrated Systems, Inc. | Discrete linear space sampling method and apparatus for generating digital 3D models |
| CN1669069B (en) | 2002-07-10 | 2010-05-05 | 哈曼贝克自动系统股份有限公司 | System for texturing an electronic representation of an object |
| US7069124B1 (en) | 2002-10-28 | 2006-06-27 | Workhorse Technologies, Llc | Robotic modeling of voids |
| US7327857B2 (en) | 2004-03-09 | 2008-02-05 | General Electric Company | Non-contact measurement method and apparatus |
| WO2007030026A1 (en) | 2005-09-09 | 2007-03-15 | Industrial Research Limited | A 3d scene scanner and a position and orientation system |
| DE202006005643U1 (en) | 2006-03-31 | 2006-07-06 | Faro Technologies Inc., Lake Mary | Device for three-dimensional detection of a spatial area |
| US8019042B2 (en) | 2008-04-22 | 2011-09-13 | Siemens Medical Solutions Usa, Inc. | Medical imaging processing and care planning system |
| US20100228517A1 (en) * | 2009-03-09 | 2010-09-09 | Lasercraft, Inc. | Lidar devices with reflective optics |
| DE102009015922B4 (en) | 2009-03-25 | 2016-12-15 | Faro Technologies, Inc. | Method for optically scanning and measuring a scene |
| DE102009015920B4 (en) | 2009-03-25 | 2014-11-20 | Faro Technologies, Inc. | Device for optically scanning and measuring an environment |
| DE102009035337A1 (en) | 2009-07-22 | 2011-01-27 | Faro Technologies, Inc., Lake Mary | Method for optically scanning and measuring an object |
| DE102009035336B3 (en) | 2009-07-22 | 2010-11-18 | Faro Technologies, Inc., Lake Mary | Device for optical scanning and measuring of environment, has optical measuring device for collection of ways as ensemble between different centers returning from laser scanner |
| US9113023B2 (en) | 2009-11-20 | 2015-08-18 | Faro Technologies, Inc. | Three-dimensional scanner with spectroscopic energy detector |
| DE102009055989B4 (en) | 2009-11-20 | 2017-02-16 | Faro Technologies, Inc. | Device for optically scanning and measuring an environment |
| US9210288B2 (en) | 2009-11-20 | 2015-12-08 | Faro Technologies, Inc. | Three-dimensional scanner with dichroic beam splitters to capture a variety of signals |
| DE102009057101A1 (en) | 2009-11-20 | 2011-05-26 | Faro Technologies, Inc., Lake Mary | Device for optically scanning and measuring an environment |
| DE102009055988B3 (en) | 2009-11-20 | 2011-03-17 | Faro Technologies, Inc., Lake Mary | Device, particularly laser scanner, for optical scanning and measuring surrounding area, has light transmitter that transmits transmission light ray by rotor mirror |
| TWI393074B (en) | 2009-12-10 | 2013-04-11 | Ind Tech Res Inst | Apparatus and method for moving object detection |
| DE102010020925B4 (en) | 2010-05-10 | 2014-02-27 | Faro Technologies, Inc. | Method for optically scanning and measuring an environment |
| US9014848B2 (en) | 2010-05-20 | 2015-04-21 | Irobot Corporation | Mobile robot system |
| DE102010032726B3 (en) | 2010-07-26 | 2011-11-24 | Faro Technologies, Inc. | Device for optically scanning and measuring an environment |
| DE102010032723B3 (en) | 2010-07-26 | 2011-11-24 | Faro Technologies, Inc. | Device for optically scanning and measuring an environment |
| DE102010032725B4 (en) | 2010-07-26 | 2012-04-26 | Faro Technologies, Inc. | Device for optically scanning and measuring an environment |
| DE102010033561B3 (en) | 2010-07-29 | 2011-12-15 | Faro Technologies, Inc. | Device for optically scanning and measuring an environment |
| US8467992B1 (en) | 2010-09-15 | 2013-06-18 | The Boeing Company | Vision based location and measurement device and methods |
| DE102011005277A1 (en) | 2010-12-28 | 2012-06-28 | Robert Bosch Gmbh | Hand-held laser rangefinder |
| US8811767B2 (en) | 2011-03-15 | 2014-08-19 | Mitsubishi Electric Research Laboratories, Inc. | Structured light for 3D shape reconstruction subject to global illumination |
| US8908903B2 (en) | 2011-08-31 | 2014-12-09 | The Nielsen Company (Us), Llc | Image recognition to support shelf auditing for consumer research |
| GB201116961D0 (en) | 2011-09-30 | 2011-11-16 | Bae Systems Plc | Fast calibration for lidars |
| US9977978B2 (en) | 2011-11-14 | 2018-05-22 | San Diego State University Research Foundation | Image station matching, preprocessing, spatial registration and change detection with multi-temporal remotely-sensed imagery |
| WO2013104127A1 (en) | 2012-01-12 | 2013-07-18 | Google Inc. | Generating an indoor map model |
| US8699005B2 (en) | 2012-05-27 | 2014-04-15 | Planitar Inc | Indoor surveying apparatus |
| DE102012107544B3 (en) | 2012-08-17 | 2013-05-23 | Faro Technologies, Inc. | Optical scanning device i.e. laser scanner, for evaluating environment, has planetary gears driven by motor over vertical motor shaft and rotating measuring head relative to foot, where motor shaft is arranged coaxial to vertical axle |
| DE112013004369T5 (en) | 2012-09-06 | 2015-06-11 | Faro Technologies, Inc. | Laser scanner with additional detection device |
| US10678259B1 (en) | 2012-09-13 | 2020-06-09 | Waymo Llc | Use of a reference image to detect a road obstacle |
| WO2014043461A1 (en) | 2012-09-14 | 2014-03-20 | Faro Technologies, Inc. | Laser scanner with dynamical adjustment of angular scan velocity |
| US10067231B2 (en) | 2012-10-05 | 2018-09-04 | Faro Technologies, Inc. | Registration calculation of three-dimensional scanner data performed between scans based on measurements by two-dimensional scanner |
| US9513107B2 (en) | 2012-10-05 | 2016-12-06 | Faro Technologies, Inc. | Registration calculation between three-dimensional (3D) scans based on two-dimensional (2D) scan data from a 3D scanner |
| DE102012109481A1 (en) | 2012-10-05 | 2014-04-10 | Faro Technologies, Inc. | Device for optically scanning and measuring an environment |
| DE102012112321B4 (en) | 2012-12-14 | 2015-03-05 | Faro Technologies, Inc. | Device for optically scanning and measuring an environment |
| DE202012104890U1 (en) | 2012-12-14 | 2013-03-05 | Faro Technologies, Inc. | Device for optically scanning and measuring an environment |
| WO2014108907A1 (en) | 2013-01-14 | 2014-07-17 | Bar-Ilan University | Location-based image retrieval |
| US20140300906A1 (en) | 2013-03-13 | 2014-10-09 | Faro Technologies, Inc. | Laser scanner with cellular transceiver communication |
| US8705893B1 (en) | 2013-03-14 | 2014-04-22 | Palo Alto Research Center Incorporated | Apparatus and method for creating floor plans |
| US9025861B2 (en) | 2013-04-09 | 2015-05-05 | Google Inc. | System and method for floorplan reconstruction and three-dimensional modeling |
| DE102013110581B4 (en) | 2013-09-24 | 2018-10-11 | Faro Technologies, Inc. | Method for optically scanning and measuring an environment and device therefor |
| DE102013110580B4 (en) | 2013-09-24 | 2024-05-23 | Faro Technologies, Inc. | Method for optically scanning and measuring a scene and laser scanner designed to carry out the method |
| WO2015066319A1 (en) | 2013-11-01 | 2015-05-07 | Robert Bosch Gmbh | System and method for measuring by laser sweeps |
| DE102014104712B4 (en) | 2014-04-02 | 2020-07-30 | Faro Technologies, Inc. | Registration of a scene disintegrating into clusters with visualized clusters |
| US9756263B2 (en) | 2014-05-01 | 2017-09-05 | Rebellion Photonics, Inc. | Mobile gas and chemical imaging camera |
| US9964409B1 (en) | 2014-05-27 | 2018-05-08 | Apple Inc. | Localized map generation |
| WO2015182956A1 (en) | 2014-05-29 | 2015-12-03 | Samsung Electronics Co., Ltd. | Method and device for generating data representing structure of room |
| US10127667B2 (en) | 2014-08-01 | 2018-11-13 | Locuslabs, Inc. | Image-based object location system and process |
| US10746980B2 (en) | 2014-08-26 | 2020-08-18 | General Electric Company | Calibration of microscopy systems |
| US10275894B2 (en) | 2016-01-28 | 2019-04-30 | Interra Systems | Methods and systems for detection of artifacts in a video after error concealment |
| EP3236418B1 (en) | 2016-04-13 | 2020-10-28 | Canon Kabushiki Kaisha | Image processing apparatus, image processing method, and storage medium |
| US10776836B2 (en) | 2016-05-31 | 2020-09-15 | Paypal, Inc. | Merchant tip determination system |
| US11526744B2 (en) | 2016-07-09 | 2022-12-13 | Doxel, Inc. | Monitoring construction of a structure |
| US10210285B2 (en) | 2016-08-10 | 2019-02-19 | Indoor Reality Inc. | Methods for generating a floor plan from a building scan |
| US10282854B2 (en) | 2016-10-12 | 2019-05-07 | Faro Technologies, Inc. | Two-dimensional mapping system and method of operation |
| US20180100927A1 (en) | 2016-10-12 | 2018-04-12 | Faro Technologies, Inc. | Two-dimensional mapping system and method of operation |
| JP6581068B2 (en) * | 2016-11-11 | 2019-09-25 | 株式会社東芝 | Image processing apparatus, image processing method, program, operation control system, and vehicle |
| JP6116746B1 (en) | 2016-11-17 | 2017-04-19 | 株式会社ネクスト | Information processing apparatus, information processing method, and program |
| EP3373249A1 (en) | 2017-03-08 | 2018-09-12 | Nederlandse Organisatie voor toegepast- natuurwetenschappelijk onderzoek TNO | Method of detecting moving objects from a temporal sequence of images |
| US10269135B2 (en) | 2017-03-14 | 2019-04-23 | Qualcomm Incorporated | Methods and systems for performing sleeping object detection in video analytics |
| US10824773B2 (en) | 2017-03-28 | 2020-11-03 | Faro Technologies, Inc. | System and method of scanning an environment and generating two dimensional images of the environment |
| US10572970B2 (en) | 2017-04-28 | 2020-02-25 | Google Llc | Extracting 2D floor plan from 3D GRID representation of interior space |
| EP3495771B1 (en) | 2017-12-11 | 2025-11-05 | Hexagon Technology Center GmbH | Automated surveying of real world objects |
| US10339384B2 (en) | 2018-02-07 | 2019-07-02 | Structionsite Inc. | Construction photograph integration with 3D model images |
| US20190180140A1 (en) | 2018-02-17 | 2019-06-13 | Constru Ltd | System and method for ranking using construction site images |
| US10657691B2 (en) | 2018-03-27 | 2020-05-19 | Faro Technologies, Inc. | System and method of automatic room segmentation for two-dimensional floorplan annotation |
| US11055532B2 (en) | 2018-05-02 | 2021-07-06 | Faro Technologies, Inc. | System and method of representing and tracking time-based information in two-dimensional building documentation |
| US11087054B2 (en) * | 2019-09-06 | 2021-08-10 | Beamup Ltd. | Structural design systems and methods for automatic selection of equipment and generation of wiring diagrams by modeling and simulation |
| EP4115392A4 (en) * | 2020-03-04 | 2023-08-23 | Magic Leap, Inc. | Systems and methods for efficient floorplan generation from 3d scans of indoor scenes |
| CN113971628B (en) * | 2020-07-24 | 2025-05-06 | 株式会社理光 | Image matching method, device and computer readable storage medium |
-
2021
- 2021-05-20 US US17/325,947 patent/US11501478B2/en active Active
-
2022
- 2022-10-14 US US17/965,902 patent/US20230033632A1/en not_active Abandoned
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20250036141A1 (en) * | 2021-11-30 | 2025-01-30 | Electronics And Telecommunications Research Institute | Rail detection apparatus and method for autonomous driving of mobile robot in greenhouse environment |
| EP4446910A1 (en) * | 2023-04-14 | 2024-10-16 | Hubstar International Limited | System and method for space classification |
Also Published As
| Publication number | Publication date |
|---|---|
| US20220051459A1 (en) | 2022-02-17 |
| US11501478B2 (en) | 2022-11-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11501478B2 (en) | System and method of automatic room segmentation for two-dimensional laser floorplans | |
| US11055532B2 (en) | System and method of representing and tracking time-based information in two-dimensional building documentation | |
| US10657691B2 (en) | System and method of automatic room segmentation for two-dimensional floorplan annotation | |
| AU2020200546B2 (en) | Structure modelling | |
| Chen et al. | Active vision in robotic systems: A survey of recent developments | |
| US10748318B2 (en) | System and method of scanning and editing two dimensional floorplans | |
| US11461526B2 (en) | System and method of automatic re-localization and automatic alignment of existing non-digital floor plans | |
| KR20180004151A (en) | Apparatus and method for real-time mapping and localization | |
| US10896517B2 (en) | System and method of scanning an environment | |
| US11936843B2 (en) | Generating textured three-dimensional meshes using two-dimensional scanner and panoramic camera | |
| US11624833B2 (en) | System and method for automatically generating scan locations for performing a scan of an environment | |
| Kwon et al. | Building 3D visual maps of interior space with a new hierarchical sensor fusion architecture | |
| US10447991B1 (en) | System and method of mapping elements inside walls | |
| Xiao et al. | User-guided dimensional analysis of indoor building environments from single frames of RGB-D sensors | |
| US20230003546A1 (en) | A system and method of generating a floorplan | |
| Luo et al. | Robust indoor localization using histogram of oriented depth model feature map for intelligent service robotics | |
| Schroter et al. | RG mapping: learning compact and structured 2D line maps of indoor environments | |
| US11486701B2 (en) | System and method for performing a real-time wall detection | |
| Gallegos et al. | Appearance-based slam relying on a hybrid laser/omnidirectional sensor | |
| Forsman | Three-dimensional localization and mapping of static environments by means of mobile perception | |
| Bacca et al. | Vertical edge‐based mapping using range‐augmented omnidirectional vision sensor | |
| Noichl | 3D Object Detection with Point Cloud Data in Indoor Scenes | |
| Jahromi | 3D Reconstruction of Indoor Corridor Models Using Single Imagery and Video Sequences | |
| Sekar | Automatic Indoor Modelling using Crowd-Sensed Point Clouds | |
| Park et al. | Indoor Environment Modeling with Stereo Camera for Mobile Robot Navigation |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: FARO TECHNOLOGIES, INC., FLORIDA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BRENNER, MARK;FRANK, ALEKSEJ;ZWEIGLE, OLIVER;AND OTHERS;SIGNING DATES FROM 20221014 TO 20221104;REEL/FRAME:061654/0821 |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
| STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |