IP Library Granted Patent US 12,475,663
Granted Patent B2
US 12,475,663 · App. 18/222,505 · Granted Nov 18, 2025

Registration of 3D augmented scene to structural floor plans

Inventors: Dan Lowenthal (Amikam, IL); Amit Cherniak (Tel Aviv, IL); Nativ Levy (Hod Hasharon, IL); Ehud Li-Hod (Ramat Gan, IL)
Assignee: SparX App Ltd.
G06T19/20G06T7/33G06T17/00G06T19/006G06T2219/2004G06T2219/2016
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,475,663
App. No.
18/222,505
Granted
Nov 18, 2025
Kind
B2
Abstract

Disclosed herein are methods and systems for registering an Augmented Reality (AR) scene to a 3D model of a certain area, comprising accumulating a geometrical dataset of a certain area based on visual data captured by imaging sensors during an AR session, obtaining a 3D model of the certain area, computing a similarity score for the geometrical dataset compared to the 3D model rotated in several candidate principal rotation angles based on parallelism of corresponding planes identified in the geometrical dataset and in the rotated 3D model, selecting a highest score principal rotation angle, computing a translation vector for each of a plurality of fine-tune rotation angles with respect to the selected principal rotation angle based on a distance between the corresponding planes, selecting a lowest distance fine-tune rotation angle, and registering the geometrical dataset to the 3D model according to the selected fine-tune rotation angle and its translation vector.

Claims (52)

1 . A method of registering an augmented reality (AR) scene of a certain area to three dimensional (3D) model of the certain area, comprising:

using at least one processor configured for:

accumulating a geometrical dataset of the certain area based on visual data captured by at least one imaging sensor during an active AR session;

obtaining at least one 3D model of the certain area;

rotating the at least one 3D model in each of a plurality of fine-tune rotation angles;

computing a translation vector for each of the plurality of fine-tune rotation angles based on a distance between a plurality of corresponding planes identified in the geometrical dataset and in the rotated at least one 3D model;

selecting a fine-tune rotation angle producing a lowest distance between the corresponding planes; and

registering the geometrical dataset to the at least one 3D model according to the selected fine-tune rotation angle and its respective translation vector.

2 . The method of claim 1 , wherein the plurality of fine-tune rotation angles are rotated with respect to a principal rotation angle selected from a plurality of principal rotation angles, the selected principal rotation angle produces a highest similarity score among the plurality of principal rotation angles, the similarity score is indicative of parallelism of the plurality of corresponding planes identified in the geometrical dataset and in the rotated at least one 3D model.

3 . The method of claim 2 , wherein the plurality of principal rotation angles are members of a group consisting of: a first angle aligned with a point of origin of the at least one 3D model, the first angle+pi/2, the first angle+p1 and the first angle +pi*3/2.

4 . The method of claim 1 , further comprising failing the registration according to the selected fine-tune rotation angle and translation vector in case the lowest distance exceeds a certain threshold.

5 . The method of claim 1 , wherein the geometrical dataset and the rotated at least one 3D model are first aligned around a positive perpendicular axis of the certain area and a zero floor height prior to computing the similarity score.

6 . The method of claim 1 , wherein computing the translation vector for each fine-tune rotation angle comprises:

applying a sliding window over the geometrical dataset and the at least one 3D model rotated according to the respective fine-tune rotation angle such that the sliding window is located in a plurality of window positions covering the geometrical dataset and the at least one 3D model,

computing, in each of the plurality of window positions, a distance between each plane identified in the window of the geometrical dataset and in the window of the 3D model,

computing the translation vector of the respective fine-tune rotation angle by aggregating a plurality of distance values computed for a plurality of corresponding planes identified in the plurality of window positions.

7 . The method of claim 6 , wherein aggregating the plurality of distance values to compute the translation vector comprises computing a mean value for the plurality of distance values.

8 . The method of claim 1 , wherein the at least one 3D model is created for the certain area based on at least one floor plan of the certain area.

9 . The method of claim 1 , wherein each of the plurality of planes is a member of a group consisting of: a wall, a floor, a ceiling, a door and a window.

10 . The method of claim 1 , wherein the distance between corresponding planes identified in the geometrical dataset and the at least one 3D model rotated according to each fine-tune rotation angle is computed based on a dot product of the normal of the respective planes.

11 . The method of claim 1 , further comprising registering the geometrical dataset to the at least one 3D model based on at least one reference plane in at least one 3D model which is identified in the geometrical dataset.

12 . The method of claim 1 , further comprising computing a respective translation vector for the geometrical dataset with respect to each of a plurality of 3D models potentially matching the certain area and selecting one of the plurality of 3D models which produces a lowest distance between the corresponding planes, each of the plurality of 3D models is created based on at least one floor plan of a respective area potentially matching the certain area.

13 . The method of claim 1 , further comprising tracking the registration of the geometrical dataset with the at least one 3D model by adjusting the selected fine-tune rotation angle and its respective translation vector to overcome potential drifting due to change in a point of view and/or a location of the at least one imaging sensor.

14 . The method of claim 13 , wherein the registration is adjusted by computing the translation vector based on the distance values computed between a plurality of planes identified in the geometrical dataset and corresponding planes identified in the at least one 3D model where each of the plurality of planes is assigned a respective weight.

15 . The method of claim 14 , wherein the weight assigned to each of the plurality of planes is computed based on at least one of:

a distance of the respective plane from the at least one imaging sensor such that closer planes are assigned higher weights and further planes are assigned lower weights,

a most recent time at which the respective plane was identified such that more recently detected planes are assigned higher weights and less recently detected planes are assigned lower weights, and

a position and/or orientation of the respective plane as derived from the geometrical dataset.

16 . The method of claim 13 , wherein the registration is adjusted by:

listing each plane recently updated in the geometrical dataset and its corresponding plane in the at least one 3D model, and

computing the location of the respective plane in the geometrical dataset based on the static location of the corresponding plane in the at least one 3D model.

17 . The method of claim 1 , further comprising at least one of:

updating the at least one 3D model of the certain area based on at least one geometrical feature relating to at least one of the plurality of planes extracted from the geometrical dataset,

creating a realistic 3D model by overlaying at least part of the visual data over the at least one 3D model.

18 . The method of claim 1 , further comprising creating the at least one 3D model of the certain area based on at least one previous geometrical dataset created during at least one previous AR session in the certain area, the at least one previous geometrical dataset is crated based on visual data captured by at least one AR device during the at least one previous AR session.

19 . A system for registering an augmented reality (AR) scene of a certain area to three dimensional (3D) model of the certain area, comprising:

at least one processor configured to execute a code, the code comprising:

code instructions to accumulate a geometrical dataset of the certain area based on visual data captured by at least one imaging sensor during an active AR session;

code instructions to obtain at least one 3D model of the certain area;

code instructions to compute a similarity score for the geometrical dataset compared to the at least one 3D model rotated in each of a plurality of principal rotation angles, the similarity score is indicative of parallelism of a plurality of corresponding planes identified in the geometrical dataset and in the rotated at least one 3D model;

code instructions to rotate the at least one 3D model in each of a plurality of fine-tune rotation angles;

code instructions to compute a translation vector for each of the plurality of fine-tune rotation angles based on a distance between a plurality of corresponding planes identified in the geometrical dataset and in the rotated at least one 3D model;

code instructions to select a fine-tune rotation angle producing a lowest distance between the corresponding planes; and

code instructions to register the geometrical dataset to the at least one 3D model according to the selected fine-tune rotation angle and its respective translation vector.

20 . A computer program product for identifying a matching floor plan for an augmented reality (AR) session, comprising:

at least one non-transitory computer readable storage media having thereon:

first program instructions executable by at least one processor to cause the at least one processor to code instructions to accumulate a geometrical dataset of a certain area based on visual data captured by at least one imaging sensor during an active AR session;

second program instructions executable by the at least one processor to cause the at least one processor to obtain at least one 3D model of the certain area;

third program instructions executable by the at least one processor to cause the at least one processor to rotate the at least one 3D model in each of a plurality of fine-tune rotation angles;

fourth program instructions executable by the at least one processor to cause the at least one processor to compute a translation vector for each of the plurality of fine-tune rotation angles with respect to a principal rotation angle based on a distance between a plurality of corresponding planes identified in the geometrical dataset and in the rotated at least one 3D model;

fifth program instructions executable by the at least one processor to cause the at least one processor to select a fine-tune rotation angle producing a lowest distance between the corresponding planes; and

sixth program instructions executable by the at least one processor to cause the at least one processor to register the geometrical dataset to the at least one 3D model according to the selected fine-tune rotation angle and its respective translation vector.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 17, 2023
From: LOWENTHAL, DAN; CHERNIAK, AMIT; LEVY, NATIV; LI-HOD, EHUD
To: SPARX APP LTD.
Reel/Frame 065244/0896 →
Continuity (4)
Continuation PCTIL2022050066 · Jan 17, 2022
Continuation 17367707 · Jul 6, 2021
Provisional Application 63138473 · Jan 17, 2021
Related Publication 20230368482A1 · Nov 16, 2023
References Cited (12)
US 10733800B2 · Booth · 2020 [cited by examiner]
US 20160247319A1 · Nowatzyk · 2016 [cited by examiner]
CN 102798362 · 2012 [cited by applicant]
WO WO2022153315 · 2022 [cited by applicant]
International Search Report and the Written Opinion Dated Mar. 30, 2022 From the International Searching Authority Re. Application No. PCT/IL2021/050066. (6 Pages). [cited by applicant]
Notice of Allowance Dated Feb. 23, 2022 from US Patent and Trademark Office Re. U.S. Appl. No. 17/367,707. (6 pages). [cited by applicant]
Official Action Dated Jan. 5, 2022 from US Patent and Trademark Office Re. U.S. Appl. No. 17/367,707. (7 pages). [cited by applicant]
International Preliminary Report on Patentability Dated Jul. 27, 2023 From the International Bureau of WIPO Re. Application No. PCT/IL2022/050066 (5 Pages). [cited by applicant]
Supplementary European Search Report and European Search Opinion Dated Nov. 6, 2024 From the European Patent Office Re. Application No. 22739272.7. (7 Pages). [cited by applicant]
Bosché “Plane-Based Registration of Construction Laser Scans With 3D/4D Building Models”, Advanced Engineering Informatics, XP028339511, 26(1): 90-102, Available Online Oct. 4, 2011. [cited by applicant]
Golparvar-Fard et al. “Montoring Changes of 3D Building Elements From Unordered Photo Collections”, 2011 IEEE International Conference on Computer Vision Workshops, ICCV Workshops, XP032095247, Barcelona, Spain, Nov. 6-… [cited by applicant]
Wang et al. “Research of Fast Point Cloud Registration Method in Construction Error Analysis of Hull Blocks”, International Journal of Naval Architecture and Ocean Engineering, XP093091576, 12: 605-616, Jan. 1, 2020. [cited by applicant]