WO2024119230A1 - Photogrammetry surveying method and system - Google Patents
Photogrammetry surveying method and system Download PDFInfo
- Publication number
- WO2024119230A1 WO2024119230A1 PCT/AU2023/051262 AU2023051262W WO2024119230A1 WO 2024119230 A1 WO2024119230 A1 WO 2024119230A1 AU 2023051262 W AU2023051262 W AU 2023051262W WO 2024119230 A1 WO2024119230 A1 WO 2024119230A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- image
- vanishing point
- processor
- lines
- line
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C11/00—Photogrammetry or videogrammetry, e.g. stereogrammetry; Photographic surveying
- G01C11/02—Picture taking arrangements specially adapted for photogrammetry or photographic surveying, e.g. controlling overlapping of pictures
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C11/00—Photogrammetry or videogrammetry, e.g. stereogrammetry; Photographic surveying
- G01C11/04—Interpretation of pictures
- G01C11/06—Interpretation of pictures by comparison of two or more pictures of the same area
- G01C11/08—Interpretation of pictures by comparison of two or more pictures of the same area the pictures not being supported in the same relative position as when they were taken
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C11/00—Photogrammetry or videogrammetry, e.g. stereogrammetry; Photographic surveying
- G01C11/04—Interpretation of pictures
- G01C11/06—Interpretation of pictures by comparison of two or more pictures of the same area
- G01C11/28—Special adaptation for recording picture point data, e.g. for profiles
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/38—Electronic maps specially adapted for navigation; Updating thereof
- G01C21/3804—Creation or updating of map data
- G01C21/3807—Creation or updating of map data characterised by the type of data
- G01C21/383—Indoor data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/12—Geometric CAD characterised by design entry means specially adapted for CAD, e.g. graphical user interfaces [GUI] specially adapted for CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/13—Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/30—Determination of transform parameters for the alignment of images, i.e. image registration
- G06T7/33—Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
- G06T7/337—Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/536—Depth or shape recovery from perspective effects, e.g. by using vanishing points
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
- G06T7/579—Depth or shape recovery from multiple images from motion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/08—Probabilistic or stochastic CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/18—Details relating to CAD techniques using virtual or augmented reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/20048—Transform domain processing
- G06T2207/20061—Hough transform
Definitions
- This invention relates broadly to the field of surveying in the construction, engineering, architecture and related industries, and more specifically to a photogrammetry surveying method and an associated photogrammetry surveying system.
- BACKGROUND ART [0002] The following discussion of the background art is intended to facilitate an understanding of the present invention only. The discussion is not an acknowledgement or admission that any of the material referred to is or was part of the common general knowledge as at the priority date of the application.
- photogrammetry is the science and technology of obtaining reliable information about physical objects and the environment through the process of recording, measuring and interpreting photographic images and patterns of electromagnetic radiant imagery and other phenomena.
- Photogrammetry is used in various fields such as topographic mapping, geology, architecture, engineering, manufacturing and quality control.
- photogrammetry is used in various fields such as topographic mapping, geology, architecture, engineering, manufacturing and quality control.
- photogrammetry There are many variants of photogrammetry.
- One example is the extraction of three-dimensional measurements from two- dimensional data, such as images. In such an example, a distance between two points that lie on a plane parallel to the photographic image plane can be determined by measuring their distance on the image, if the scale of the image is known.
- Another is the extraction of accurate colour ranges and values representing such quantities as albedo, specular reflection, metallicity, or ambient occlusion from photographs of materials for the purposes of physically based rendering.
- One significant shortcoming with known photogrammetry solutions is that they are generally very computationally demanding to implement and perform, often making such methods time- consuming and expensive.
- a depth in images can be obtained in software by matching pixel colours between images, and generating 3D ‘point clouds’ that can be imported into specific design software, such as RevitTM. Draughtspersons then typically draw over specific 3D points in such a point cloud to identify what they need.
- specific design software such as RevitTM. Draughtspersons then typically draw over specific 3D points in such a point cloud to identify what they need.
- One disadvantage of this type of photogrammetry software is its demand on the user’s time and requirement for computational power. At best, a minimum of four photos of the same object takes several minutes to load on a typical computer, but typically such methods require around fifty photographs of a space for surveying, which typically requires several computational hours in order to generate a suitable 3D point cloud.
- a photogrammetry surveying method comprising the steps of: capturing, by means of a camera, at least two images of an area for survey, each image captured from a different position; recording, with an accelerometer, at each image capture position, an acceleration value; recording, with a clock, at each image capture position, a timestamp of when an image is captured; calculating, by means of a processor, coordinates and camera orientation of each image capture position in a coordinate system using said acceleration value, orientation and timestamp; detecting, via the processor, straight-line edges within each image; identifying, via the processor, vanishing point sets of the straight-line edges for each image; calculating, via the processor, a transformation matrix to transform local axes to global axes for each vanishing point set in each image; determining, via the processor, aligned lines radiating from said vanishing point sets that share common axes in the global coordinate system; locating, via the processor, epipoles in each image using the align
- the step of calculating camera orientation comprises sensing with an orientation sensor, at each image capture position, an orientation of the captured image.
- the orientation sensor comprises either or both of a magnetometer configured to record a magnetic field strength at each image capture position and/or a camera video feed to calculate image capture positions, via the processor, using monocular odometry.
- the steps of capturing the image and recording the acceleration value, the orientation and the timestamp are performed simultaneously by a processing device comprising the camera, accelerometer, orientation sensor, clock and processor in a unitary manner, such as a smartphone or tablet.
- the step of calculating coordinates of each image capture position and a camera orientation is done in a 3D Euclidean coordinate system where one axis is upwards (from the acceleration value, typically after low-pass filtering) and another axis is derived from the north magnetic pole (from the magnetic field strength) at each image capture timestamp.
- the method includes the step of calculating, via the processor, an approximate path between the different positions in the coordinate system where images are captured using the acceleration values, orientations and timestamps to facilitate in locating the epipoles that link an image pair.
- the step of detecting straight-line edges within an image is performed by the processor: a. scaling down the image to reduce computation time; b.
- the step of identifying vanishing point sets for an image comprises identifying candidates for triplets of vanishing points within the image.
- the step of identifying vanishing point sets for an image is performed by the processor: a. obtaining an estimate for a vertical vanishing point by transforming an estimate for a global vertical direction into a point in the coordinate system using the camera orientation; b. mapping the detected straight-line edges as points within twisted parallel coordinate (PC) line space; c.
- PC twisted parallel coordinate
- the step of identifying vanishing point sets for an image comprises iteratively determining new vanishing point candidates based on the points (a, b) and vanishing point estimates from earlier iterations.
- the step of identifying vanishing point sets for an image comprises extracting vanishing point estimates from a mode of input points defined in terms of R and ⁇ from the Hough transform.
- the step of identifying vanishing point triplet candidates for an image comprises, for each iteratively determined vanishing point candidate, obtaining two associated vanishing points by, for each line transformed via mapping into a point in PC space, selecting a set of points such that when transformed into PC space, their lines intercept that point at angles ( ⁇ ) that are uniformly distributed and the resulting points generated are perpendicular in 3D space to an axis defined by the vertical vanishing point candidate, that satisfies: where ⁇ is a 1x2 matrix representing the iteratively determined vanishing point candidate.
- the step of identifying vanishing point triplet candidates for an image comprises, for each identified vanishing point in a set, counting a number of points (a, b) close to such vanishing point set and selecting a desired set with the highest product of such count for each vanishing point in the set, and generating two additional vanishing point candidate sets by iterating upon the 2 nd and 3 rd vanishing points of the desired set.
- the step of calculating a transformation matrix, or equivalent product of a camera projection matrix and rotation matrix, for each desired vanishing point set is calculated according to: where n is a corresponding 3D vector for an image centre, and index 2 corresponds to the vertical vanishing point.
- the step of calculating the vanishing point sets for each image that have maximum global axis alignment for all images using the transformation matrix comprises selecting the sets wherein angle deviations between the coordinate system derived from acceleration values and magnetic field strengths and the image lines are minimised.
- the step of calculating the vanishing point sets comprises identifying vanishing point triplet candidates in a first captured image by: i. determining feature points between the images by generating rotation and scale independent descriptors for each image and matching feature points between said images; ii. calculating a relative pose between images using a RANSAC or Least-Median-of-Squares approach; iii.
- the step of calculating the vanishing point sets comprises calculating a 2 nd vanishing point candidate as the intersection of the remaining line of the randomly selected three intercepting lines and the line representing the set of all possible vanishing points perpendicular to the 1 st candidate as defined by all points (x, y) that satisfy: [0026] In an embodiment, the step of calculating the vanishing point sets comprises calculating a 3 rd vanishing point candidate using a cross product of the first two vanishing point candidates and the camera projection matrix by counting the number of inlier lines that fit the axes represented by the vanishing point candidates and checking if an angle difference to any axis representing the vanishing points is less than a threshold of between 0.1 to 5 degrees.
- the step of calculating the vanishing point sets comprises iteratively identifying vanishing point triplet candidates to improve accuracy.
- the step of determining aligned lines radiating from said vanishing point sets comprises obtaining axis aligned lines in each image by determining lines substantially parallel with each axis associated with each vanishing point determined for an image, and merging such substantially parallel lines according to a predetermined distance between them.
- selecting the vanishing point sets with minimum angle deviation comprises deriving an angle deviation for the vertical axis, by projecting the vertical vanishing point into 3D space using the transformation matrix, and projecting the magnetic field strength into 2D using the coordinate system and back to 3D using the transformation matrix, with transformation matrices of subsequent images synchronised via rotating by multiples of 90° with respect to the vertical axis of the coordinate system.
- the step of determining aligned lines radiating from said vanishing point sets that share common axes in the coordinate system comprises: a.
- step (a) for each image, defining lines radiating from the respective vanishing point over the image coordinate domain such that the angles between adjacent lines are inversely proportional to the average radial distance from the vanishing point; b. for each line generated in step (a) above, collecting and storing edge information at each pixel from the image that is within a predetermined distance of said line; c. separating pixel entries along said line into either noise or signal depending on whether a pixel edge slope is reasonably parallel to the line; and d. using graph-cut methods, separating the signal from the noise along the line to identify the resulting line segments.
- the step of matching corresponding lines between the images using belief-propagation techniques comprises execution of a suitable belief propagation algorithm which is iteratively performed at least twice.
- the belief propagation algorithm accounts for colour values, e.g. RGB, YCbCr etc., for pixels on either side of lines and an overlap ratio of a span of angles about the epipoles in 3D covered by each line.
- the method includes the step of exporting, via the processor, the 3D model to an external CAD file and/or for display on a screen.
- a photogrammetry surveying system comprising: a camera for capturing at least two images of an area for survey, each image to be captured from a different position; an accelerometer configured to record an acceleration value at each image capture position; a clock configured to record a timestamp of when each image is captured; and a processor arranged in signal communication with the camera, accelerometer and clock, said processor configured to: i. calculate coordinates and camera orientation of each image capture position in a coordinate system using said recorded acceleration value and timestamp; ii. detect straight-line edges within each image; iii. identify vanishing point sets of the straight-line edges for each image; iv.
- the photogrammetry surveying system is unitary as a single, man-portable electronic device, such as a smartphone or tablet.
- the processor is configured to perform the described operations by means of a suitable set of software instructions comprising an application or ‘app’.
- the photogrammetry surveying system comprises an orientation sensor configured to record a camera orientation at each image capture position.
- the orientation sensor comprises either or both of a magnetometer configured to record a magnetic field strength at each image capture position and/or a camera video feed to calculate image capture positions, via the processor, using monocular odometry.
- the processor is configured to calculate coordinates of each image capture position and a camera orientation in a 3D Euclidean coordinate system where one axis is upwards (from the acceleration value, typically after low-pass filtering) and another axis is derived from the north magnetic pole (from the magnetic field strength) at each image capture timestamp.
- the processor is configured to calculate an approximate path between the different positions in the coordinate system where images are captured using the acceleration values, orientation and timestamps to facilitate in locating the epipoles in each image.
- the processor is configured to detect straight-line edges within an image by: a. scaling down the image to reduce computation time; b. identifying an edge intensity and edge slope angle through an edge detection algorithm for representative pixels in the image; c. calculating curves by connecting pixels with such edge information; and d. identifying potential straight-line segments within the calculated curves.
- the processor is configured to identify vanishing point sets for an image by identifying candidates for triplets of vanishing points within the image.
- the processor is configured to identify vanishing point sets for an image by: a. obtaining an estimate for a vertical vanishing point by transforming an estimate for a global vertical direction into a point in the coordinate system using the camera orientation; b. mapping the detected straight-line edges as points within twisted parallel coordinate (PC) line space; c. for each line transformed via mapping into a point in PC space, selecting a set of points such that when transformed into PC space, their lines intercept that point at angles ( ⁇ ) that are uniformly distributed; and d. recording a minimum magnitude Hough transform (R, ⁇ ) to represent each point (a, b).
- PC twisted parallel coordinate
- the processor is configured to identify vanishing point sets for an image by iteratively determining new vanishing point candidates based on the points (a, b) and vanishing point estimates from earlier iterations. [0045] In an embodiment, the processor is configured to identify vanishing point sets for an image by extracting vanishing point estimates from a mode of input points defined in terms of R and ⁇ from the Hough transform.
- the processor is configured to identify vanishing point triplet candidates for an image by, for each iteratively determined vanishing point candidate, obtaining two associated vanishing points by, for each line transformed via mapping into a point in PC space, selecting a set of points such that when transformed into PC space, their lines intercept that point at angles ( ⁇ ) that are uniformly distributed and the resulting points generated are perpendicular in 3D space to an axis defined by the vertical vanishing point candidate, as defined by all points (x, y) that satisfy: (
- the processor is configured to identify vanishing point triplet candidates for an image by, for each identified vanishing point in a set, counting a number of points (a, b) close to such vanishing point set and selecting a desired set with the highest product of such count for each vanishing point in the set, and generating two additional vanishing point candidate sets by iterating upon the 2 nd and 3 rd vanishing points of the desired set.
- the processor is configured to calculate a transformation matrix, or equivalent product of a camera projection matrix and rotation matrix, for each desired vanishing point set according to: where n is a corresponding 3D vector for an image centre.
- the processor is configured to calculate the vanishing point sets for each image that have maximum alignment for all images using the transformation projection matrix by selecting the sets wherein angle deviations between the coordinate system derived from acceleration values and magnetic field strengths and the image lines are minimised.
- the processor is configured to identify vanishing point triplet candidates in a first captured image by: i. determining feature points between the images by generating rotation and scale independent descriptors for each image and matching feature points between said images; ii.
- the processor is configured to calculate a 2 nd vanishing point candidate as the intersection of the remaining line of the randomly selected three intercepting lines and the line representing the set of all possible vanishing points perpendicular to the 1 st candidate as defined by all points (x, y) that satisfy: [0052] In an embodiment, the processor is configured to calculate a 3 rd vanishing point candidate using a cross product of the first two vanishing point candidates and the camera projection matrix by counting the number of inlier lines that fit the axes represented by the vanishing point candidates and checking if an angle difference to any axis representing the vanishing points is less than a threshold of between 1 to 5 degrees.
- the processor is configured to identify vanishing point triplet candidates by iteratively performing the above steps to improve accuracy.
- the processor is configured to obtain axis aligned lines in each image by determining lines substantially parallel with each axis associated with each vanishing point determined for an image, and merging such substantially parallel lines according to a predetermined distance between them.
- the processor is configured to select the sets with minimum angle deviation by deriving an angle deviation for the vertical axis by projecting the vertical vanishing point into 3D space using the transformation matrix, and projecting the magnetic field strength into 2D using the coordinate system and back to 3D using the transformation matrix, with transformation matrices of subsequent images synchronised via rotating by multiples of 90° with respect to the vertical axis of the coordinate system.
- the processor is configured to determine aligned lines radiating from said vanishing point sets that share common axes in the coordinate system by: a.
- step (a) for each image, defining lines radiating from the respective vanishing point over the image coordinate domain such that the angles between adjacent lines are inversely proportional to the average radial distance from the vanishing point; b. for each line generated in step (a) above, collecting and storing edge information at each pixel from the image that is within a predetermined distance of said line; c. separating pixel entries along said line into either noise or signal depending on whether a pixel edge slope is reasonably parallel to the line; and d. using graph-cut methods, separating the signal from the noise along the line to identify the resulting line segments.
- the processor is configured to match corresponding lines between the images using belief-propagation techniques by execution of a suitable belief propagation algorithm which is iteratively performed at least twice.
- the belief propagation algorithm accounts for colour values for pixels on either side of lines and an overlap ratio of a span of angles about the epipoles in 3D covered by each line.
- the processor is configured to export the 3D model to an external CAD file and/or display said 3D model on a screen.
- Figure 1 is a functional block diagrammatic representation of representative method steps for a photogrammetry surveying method, in accordance with an aspect of the present invention
- Figure 2 is a diagrammatic representation of a photogrammetry surveying system, in accordance with an aspect of the present invention
- Figure 3 shows examples of two images captured by a camera of an area for survey, with each image captured from a different position or angle
- Figure 4 is a graphical representation of an example where points in image coordinate space is transformed into points within twisted parallel coordinate (PC) line space
- Figure 5 is a graphical representation of an example which clarifies a ‘smoothness’ function, ⁇ i,j( ⁇ , ⁇ ) aspect of a belief propagation algorithm for line matching between images
- Figure 6 is a
- Figure 7 is a graphical representation of an example where the detected straight-lines of Figure 6 are mapped as points within twisted parallel coordinate (PC) line space with R on the x-axis and Theta on the y-axis, showing final vanishing points;
- Figure 8 is a graphical representation of an example where vanishing points sets have been determined in the image of Figure 3a that align best across all lines radiating from determined vanishing points;
- Figure 9 is a graphical representation of an example where axis aligned line segments of Figure 3a have been detected;
- Figure 10 is a graphical representation of an example of a 3D model that has been compiled of the image of Figure 3a and 3b as a result of the photogrammetry surveying method;
- Figure 11 is a graphical representation of an alternative example for obtaining axis aligned line segments in each image.
- the present invention provides for a photogrammetry surveying method 10, and an associated photogrammetry surveying system 50, which is able to produce a 3D model output from photographs by general means of solving line to line matches directly without requiring the generation of point clouds, i.e. individual pixels in 2D images converted to 3D points in space, as an intermediary step, as is the case with conventional methods in this space.
- vanishing points comprise an intercept in image coordinates of all parallel lines in 3D space when projected into a 2D space, from a finitely bounded range of 2D points defined by a smallest magnitude Hough transform of lines in the twisted parallel coordinate line coordinate space.
- vanishing points are extracted via a RANSAC approach with randomised line intersections, as described in more detail herein. Specifically, such extraction of vanishing points of an image makes use of accelerometer sensor information to filter potential vanishing points, as well as a selection of best-case vanishing points between two or more images using magnetometer or magnetic field sensor information, as described in more detail below.
- Figure 1 broadly shows method steps of such a photogrammetry surveying method 10.
- the method 10 generally comprises the steps of capturing 14, by means of a camera, at least two images of an area for survey 12, with each image captured from a different position.
- Figure 3a and 3b show examples of such captured images of photographs of an area for survey 12. Of course, more than two images may also be captured.
- Method 10 then typically includes the steps of recording 14 an acceleration value with an accelerometer, optionally recording 16 a magnetic field strength with a magnetometer, and recording 18 a timestamp with a clock, at each image capture position when an image is captured.
- Camera orientation may be sensed via a suitable orientation sensor 56, at each image capture position.
- a suitable orientation sensor 56 may comprise either or both of a magnetometer configured to record a magnetic field strength at each image capture position and/or a camera video feed to calculate image capture positions, via the processor, using monocular odometry.
- Method 10 then typically comprises the step of calculating 20, by means of a suitable processor, coordinates of each image capture position and an associated camera orientation in a coordinate system using the recorded acceleration value, magnetic field strength and timestamp.
- the method 10 optionally includes the step of calculating 22, via the processor, an approximate path between the different positions in the coordinate system where images are captured using the acceleration values, magnetic field strengths and timestamps to facilitate in locating the epipoles in each image, as described in more detail below.
- Such approximate path calculation between image capture positions may include additional or continuous recordings of acceleration values and magnetic field strengths.
- Method 10 further generally comprises the steps of detecting 22 straight-line edges within each image, identifying 24 vanishing point sets of the straight-line edges for each image, calculating 26 a transformation matrix for each vanishing point set, calculating 28 the vanishing point sets for each image that have maximum alignment for all images using the transformation matrix, determining 30 aligned lines radiating from said vanishing point sets that share common axes in the coordinate system, locating 32 epipoles in each image using the aligned lines, matching 34 corresponding lines between the images using belief- propagation techniques, and compiling 36 a 3D model of the area for survey using the matched corresponding lines.
- the method 10 also includes the step of exporting 38 the 3D model to an external CAD file and/or for display on a screen.
- method 10 allows for the generation of accurate 3D models and construction/engineering drawings from captured images without requiring the generation of point clouds, making the method 10 less computationally intensive, faster for technicians during postprocessing of such 3D models, and less expensive than conventional methods that often require lidar, laser scanning techniques and or numerous input images.
- the present invention includes an associated photogrammetry surveying system 50.
- Such a system 50 is typically a unitary, man-portable electronic device, such as a smartphone or tablet, but of course variations hereon are possible and anticipated.
- Such a system 50 generally comprises a camera 52 for capturing at least two images of an area for survey 12, an accelerometer 54 configured to record an acceleration value at each image capture position, a magnetometer 56 configured to record a magnetic field strength at each image capture position, a clock 58 configured to record a timestamp of when each image is captured, and a processor 60 arranged in signal communication with the camera 52, accelerometer 54, magnetometer 56 and clock 58.
- the processor 60 is generally configured to calculate coordinates of each image capture position and a camera orientation in a coordinate system using the recorded acceleration value, magnetic field strength and timestamp.
- the processor 60 is then configured to detect straight-line edges within each image, identify vanishing point sets of the straight-line edges for each image, calculate a transformation matrix for each vanishing point set, calculate the vanishing point sets for each image that have maximum alignment for all images using the transformation matrix, determine aligned lines radiating from said vanishing point sets that share common axes in the coordinate system, locate epipoles in each image using the aligned lines, match corresponding lines between the images using belief-propagation techniques, and compile a 3D model of the area for survey 12 using the matched corresponding lines.
- the processor 60 may further be configured to export and/or display such compiled 3D model.
- Step 1 - capture a minimum of two photographs using a camera 52.
- the camera 52 is comprised within a unitary device, such as a smartphone, which is also equipped with orientation sensors, typically in the form of an accelerometer 54 and magnetometer 56 or magnetic field sensor, with such sensors recording the necessary data with timestamps from clock 58 when the images or photographs are captured.
- Step 2 calculate the approximate camera device orientations in XYZ global coordinates, where positive Z is typically ‘up’ and positive Y points to magnetic north, at each image capture time from sensor information.
- Step 3 Calculate the approximate path taken by the user between photographs using the sensor information. This is optional, but can be used to facilitate with step 9 below.
- Step 4 detect straight-line edges within each image. This is generally done by the processor 60 configured to: a. scale down the image to reduce computation time; b. identify the edge intensity and edge slope angle through an edge detection algorithm for representative pixels in the image; c. calculate curves by connecting pixels with edge information; and d. identify potential straight-line segments within the detected curves.
- Step 5 - identify candidates for triplets of vanishing points in each image. This is generally done by the processor 60 configured to: a. obtain an estimate for the vertical vanishing point by transforming the estimate for the global Z direction into a point in image coordinates, utilising the camera’s known angle of view; b. map the detected straight-lines in step 4 as points within twisted parallel coordinate (PC) line space, as represented by Figure 4. For each line transformed into a point in PC space, select a set of points such that when transformed into PC space, their lines intercept that point at angles ( ⁇ ) that are uniformly distributed. Record the smallest magnitude Hough transform (R, ⁇ ) to represent each point (a, b); and c.
- PC twisted parallel coordinate
- Vanishing Points used in this iteration should number point type be... 1 Vertical close to the vanishing point in step 5a 2 Horizontal close to the line in image coordinate space that represents all points in 3D space that are perpendicular to the axis defined by the vertical vanishing point estimate defined as the average of the result in iteration 1 and step 5a 3 Horizontal close to the best estimate for a 3 rd 4 Vertical vanishing point based on the last two 5 Horizontal vanishing point estimates; if one of the two previous vanishing points is vertical, that vertical vanishing point should be averaged with the vanishing point obtained from step 5a, as an input for the 3 rd vanishing point estimation [0081] Vanishing point estimates can be extracted from the mode of the input points, defined in terms of R and ⁇
- the associated remaining two vanishing points are obtained. This is done by following step 5b, with the additional constraint that the points generated must be perpendicular in 3D space to the axis defined by the vertical vanishing point candidate. This line is defined by all points (x, y) that satisfy: b.
- the best vanishing point candidate set from step 5d is identified.
- the filter instead excludes (i) all lines from step 4 that are close to the vanishing points from step 5e except the vanishing point being iterated on, and (ii) all lines from step 4 that are not close to the vanishing point being iterated on.
- the remaining vanishing points for the new sets are obtained by applying step 5d to the 1 st vanishing point of each new set.
- d. Reorder the vanishing points in step 5e and step 5f to have the vertical vanishing point as the 3 rd vanishing point.
- the first vanishing point can be incorrectly chosen. For example, if there are strong or several edges detected in an image that intercept each other but are not parallel in 3D space (e.g. the edges of a doorframe at the corner of a door from vertical and horizontal lines), that intercept may be chosen as a vanishing point, which is incorrect.
- Step 6 obtain the transformation matrices for each vanishing point set from step 5g for each image. These can be obtained from the following expression (where n is the corresponding 3D vector for the image centre): or equivalent product of a camera projection matrix and rotation matrix, as will be understood by the skilled addressee.
- Step 7 - determine the vanishing points sets in each image that align best across all images. The best pairing should minimise the angle deviations between the global coordinate systems derived from sensor data and those derived from the image lines.
- the angle deviation for the Z axis (up vector) can be derived by projecting the vertical vanishing point from the sensors (step 5a) into 3D space using the transformation matrix (step 6).
- the angle deviation for the magnetic field between images can be determined in a similar way by projecting the magnetic field into 2D using local coordinates and back to 3D using the camera matrix.
- the transformation matrices for the other images can be synched with the first by rotating by a multiple of 90° with respect to the global Z axis.
- Step 8 - obtain axis aligned lines in each image. This is generally achieved by: a.
- each line generated in step 8a i. Collect edge information at each pixel (step 4b) from the image that is within a short distance of the line and store in memory. ii. Separate pixel entries along the line into either noise or signal depending on whether the pixel edge slope is reasonably parallel to the line. iii.
- Step 9 Locate the epipoles in the images, i.e.
- step 6 uses the transformation matrices for each image from step 6, transform each subset point into the local coordinate system of the other image. Create a representative pixel array of the same size as in step 9a - iii, but with the texture warped to the other image’s local coordinate system. d. Offset all textures created in the above steps such that the average RGB colour of each final textures is zero. e. Calculate the cosine of the angle between potential matching textures using the dot product over each colour value in the textures at a given location. Some cosine calculations can be skipped by assuming a maximum deviation from a given epipole estimate, such as from previous iterations or from step 3. f. Accept matches that have a cosine value greater than 99% of the matches, assuming a normal distribution.
- Step 10 lines between images are matched through belief propagation. This is analogous to matching pixels in one image to a row of pixels in another image but with some key differences to account for the increased network complexity.
- Step 11 - calculate the lines in 3D space that were matched to form a 3D model.
- the recommended ‘data’ function to use for matching lines is a linear sum of (i) the squared differences of RGB colour values for pixels either side of the lines, and (ii) the overlap ratio (between 0 and 1) of the span of angles about the epipole in 3D covered by each line.
- a lookup table with the best case matches for each line i (about 10) using the data function alone should be used to prune out unlikely matches.
- the ‘smoothness’ function, ⁇ ⁇ ⁇ ( ⁇ , ⁇ ) is 0 or a constant, depending on whether the lines i, j, s and t are statistically likely to match between images.
- intercept points of lines i and j, and lines s and t are determined. If lines i and j (or s and t) represent different axes in 3D space, then the intercepts are calculated as normal. However, if the lines represent the same axes in 3D space, then the intercept is determined as the intercept of the lines, if the 2 nd vertex of each line were swapped.
- the null hypothesis for the statistical test is that the absolute difference in angles about the epipole axis in 3D is not equal to 0.
- the probability density function is derived from the displacement in angles from one uniform range, representing (the 1 st image’s) lines i and j, and another, representing (the 2 nd image’s) lines s and t.
- the range limits ⁇ ⁇ ⁇ 0 and ⁇ ⁇ ⁇ 1 , or ⁇ ⁇ ⁇ 0 and ⁇ ⁇ ⁇ 1 ) are the outer two angles from the four input vertices. Otherwise, the range limits are the middle two angles from the four input vertices.
- Step 11 calculate the lines in 3D that were matched to form a 3D model.
- Step 12 export the 3D model to an external CAD file or display directly to the user through a screen.
- Step 5 above onwards may be substituted by the following steps, i.e.
- Lines not in the first image need to be transformed into the first image’s image coordinate system using the poses from (new) step 5b and the image camera projection matrix.
- d For each sub selection of two lines chosen from the three lines in (new) step 5c (there are six configurations of this), compute a vanishing point candidate as the 2D intersection of this line pair. Convert this 2D intercept into a 3D unit vector using the camera projection matrix and normalisation. If this 3D resultant vector is parallel or perpendicular to the vertical vector estimate used for step 5a (within about 3 degrees) proceed to (new) step 5e, otherwise select another line pair configuration and intercept, or (if all configurations are processed) select new lines by repeating (new) step 5c. e.
- each 2D line into a 3D plane of the first image’s local 3D coordinate system and checking if the angle difference to any axis representing the vanishing points is less than a threshold (about 3 degrees).
- the cosine of the angle difference can be obtained from the following expression in terms of the vanishing point index (i), axis aligned unit vector ( ⁇ ⁇ ), and normalised line end points as vectors in local 3D camera space ( ⁇ 1 and ⁇ 2 ): h. Repeat (new) steps 5c to 5g until a reasonable accuracy is obtained. About 10000 iterations typically gives reasonable results quickly. i. Multiple valid sets of 3D XYZ axes may be appropriate for a set of images.
- previous Step 8 for obtaining axis aligned lines in each image can also be replaced by: a. For each line detected in step 4, mark whether each line could be parallel (in 3D) to each axis associated with each vanishing point determined for that image. Refer to (new) step 5g. b. Combine lines in each image to form a smaller set of lines (refer to figure 11 below). For each pair of lines within each image marked with the same vanishing point(s) from (new) step 8, check if they can be merged based on the gap distance between them. Referring to the Figure 11 of the accompanying drawing, the radial distance should be less than about 5 pixels and the arc distance should be less than about 1 pixel.
- Merging lines can be done by: i. Letting a point on the final merged line to be the length weighted average of each line’s midpoint; ii. Letting the merged line direction be the direction of the sum of each line vector (in the same direction away or to the vanishing point); and iii. Then determining the end points. [00102] The skilled addressee is to appreciate that the above- described alternative steps also apply to the method 10.
- Applicant believes it particularly advantageous that the present invention provides for method 10 and associated system 50 which is able to provide rapid processing of captured images to produce a 3D model of comparable accuracy to LiDAR supported techniques without hardware specific requirements and associated higher costs.
- Optional embodiments of the present invention may also be said to broadly consist in the parts, elements and features referred to or indicated herein, individually or collectively, in any or all combinations of two or more of the parts, elements or features, and wherein specific integers are mentioned herein which have known equivalents in the art to which the invention relates, such known equivalents are deemed to be incorporated herein as if individually set forth.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Computer Hardware Design (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Architecture (AREA)
- Structural Engineering (AREA)
- Civil Engineering (AREA)
- Software Systems (AREA)
- Automation & Control Theory (AREA)
- Human Computer Interaction (AREA)
- Computer Graphics (AREA)
- Image Processing (AREA)
Abstract
Provided is a photogrammetry surveying method (10), and an associated photogrammetry surveying system (50), which is able to produce a 3D model output from photographs by general means of solving line-to-line matches directly without requiring the generation of point clouds. The system (50) generally comprises a camera (52) for capturing at least two images of an area for survey (12), an accelerometer (54) configured to record an acceleration value at each image capture position, a clock 58 configured to record a timestamp of when each image is captured, and a processor (60) arranged in signal communication with the camera (52), accelerometer (54), and clock (58).
Description
PHOTOGRAMMETRY SURVEYING METHOD AND SYSTEM TECHNICAL FIELD [0001] This invention relates broadly to the field of surveying in the construction, engineering, architecture and related industries, and more specifically to a photogrammetry surveying method and an associated photogrammetry surveying system. BACKGROUND ART [0002] The following discussion of the background art is intended to facilitate an understanding of the present invention only. The discussion is not an acknowledgement or admission that any of the material referred to is or was part of the common general knowledge as at the priority date of the application. [0003] As known in the art, photogrammetry is the science and technology of obtaining reliable information about physical objects and the environment through the process of recording, measuring and interpreting photographic images and patterns of electromagnetic radiant imagery and other phenomena. Photogrammetry is used in various fields such as topographic mapping, geology, architecture, engineering, manufacturing and quality control. [0004] There are many variants of photogrammetry. One example is the extraction of three-dimensional measurements from two- dimensional data, such as images. In such an example, a distance between two points that lie on a plane parallel to the photographic image plane can be determined by measuring their distance on the image, if the scale of the image is known. Another is the extraction of accurate colour ranges and values representing such quantities as albedo, specular reflection, metallicity, or ambient
occlusion from photographs of materials for the purposes of physically based rendering. [0005] One significant shortcoming with known photogrammetry solutions is that they are generally very computationally demanding to implement and perform, often making such methods time- consuming and expensive. For example, with known techniques, a depth in images can be obtained in software by matching pixel colours between images, and generating 3D ‘point clouds’ that can be imported into specific design software, such as Revit™. Draughtspersons then typically draw over specific 3D points in such a point cloud to identify what they need. [0006] One disadvantage of this type of photogrammetry software is its demand on the user’s time and requirement for computational power. At best, a minimum of four photos of the same object takes several minutes to load on a typical computer, but typically such methods require around fifty photographs of a space for surveying, which typically requires several computational hours in order to generate a suitable 3D point cloud. Even when these conventional photogrammetry software models are carefully prepared, they can still lack accuracy and important details, such as pipework diameters for building services engineers, or the like. In addition, these conventional models still require a draughtsperson to draw over the model to get the desired output. For these reasons, very few engineers and architects have adopted these techniques, preferring to rely on other methods, such as direct measurements and laser scanning which are also slow and time consuming. [0007] In light of these shortcomings in the art, Applicant has identified a need for a photogrammetry surveying method and system which are able to produce accurate results using less computationally-demanding means without requiring hours of time
and effort to realise. The current invention was conceived with these goals in mind. SUMMARY OF THE INVENTION [0008] It is to be appreciated that this disclosure comprises various references to specific terms and concepts known in the art of geometry, computer vision, graphical projection, inference modelling and statistical analysis and that such terms and concepts will be within the understanding of the skilled addressee. [0009] According to a first aspect of the invention there is provided a photogrammetry surveying method comprising the steps of: capturing, by means of a camera, at least two images of an area for survey, each image captured from a different position; recording, with an accelerometer, at each image capture position, an acceleration value; recording, with a clock, at each image capture position, a timestamp of when an image is captured; calculating, by means of a processor, coordinates and camera orientation of each image capture position in a coordinate system using said acceleration value, orientation and timestamp; detecting, via the processor, straight-line edges within each image; identifying, via the processor, vanishing point sets of the straight-line edges for each image; calculating, via the processor, a transformation matrix to transform local axes to global axes for each vanishing point set in each image; determining, via the processor, aligned lines radiating from said vanishing point sets that share common axes in the global coordinate system; locating, via the processor, epipoles in each image using the aligned lines;
matching, via the processor, corresponding lines between the images using belief-propagation techniques; and compiling, via the processor, a 3D model of the area for survey using the matched corresponding lines. [0010] In an embodiment, the step of calculating camera orientation comprises sensing with an orientation sensor, at each image capture position, an orientation of the captured image. [0011] In an embodiment, the orientation sensor comprises either or both of a magnetometer configured to record a magnetic field strength at each image capture position and/or a camera video feed to calculate image capture positions, via the processor, using monocular odometry. [0012] In an embodiment, the steps of capturing the image and recording the acceleration value, the orientation and the timestamp are performed simultaneously by a processing device comprising the camera, accelerometer, orientation sensor, clock and processor in a unitary manner, such as a smartphone or tablet. [0013] In an embodiment, the step of calculating coordinates of each image capture position and a camera orientation is done in a 3D Euclidean coordinate system where one axis is upwards (from the acceleration value, typically after low-pass filtering) and another axis is derived from the north magnetic pole (from the magnetic field strength) at each image capture timestamp. [0014] In an embodiment, the method includes the step of calculating, via the processor, an approximate path between the different positions in the coordinate system where images are captured using the acceleration values, orientations and timestamps to facilitate in locating the epipoles that link an image pair.
[0015] In an embodiment, the step of detecting straight-line edges within an image is performed by the processor: a. scaling down the image to reduce computation time; b. identifying an edge intensity and edge slope angle through an edge detection algorithm for representative pixels in the image; c. calculating curves by connecting pixels with such edge information; and d. identifying potential straight-line segments within the calculated curves. [0016] In an embodiment, the step of identifying vanishing point sets for an image comprises identifying candidates for triplets of vanishing points within the image. [0017] In an embodiment, the step of identifying vanishing point sets for an image is performed by the processor: a. obtaining an estimate for a vertical vanishing point by transforming an estimate for a global vertical direction into a point in the coordinate system using the camera orientation; b. mapping the detected straight-line edges as points within twisted parallel coordinate (PC) line space; c. for each line transformed via mapping into a point in PC space, selecting a set of points such that when transformed into PC space, their lines intercept that point at angles (β) that are uniformly distributed; and d. recording a minimum magnitude Hough transform (R, Θ) to represent each point (a, b). [0018] In an embodiment, the step of identifying vanishing point sets for an image comprises iteratively determining new vanishing point candidates based on the points (a, b) and vanishing point estimates from earlier iterations.
[0019] In an embodiment, the step of identifying vanishing point sets for an image comprises extracting vanishing point estimates from a mode of input points defined in terms of R and Θ from the Hough transform. [0020] In an embodiment, the step of identifying vanishing point triplet candidates for an image comprises, for each iteratively determined vanishing point candidate, obtaining two associated vanishing points by, for each line transformed via mapping into a point in PC space, selecting a set of points such that when transformed into PC space, their lines intercept that point at angles (β) that are uniformly distributed and the resulting points generated are perpendicular in 3D space to an axis defined by the vertical vanishing point candidate, that satisfies:
where ^^ is a 1x2 matrix representing the iteratively determined vanishing point candidate. [0021] In an embodiment, the step of identifying vanishing point triplet candidates for an image comprises, for each identified vanishing point in a set, counting a number of points (a, b) close to such vanishing point set and selecting a desired set with the highest product of such count for each vanishing point in the set, and generating two additional vanishing point candidate sets by iterating upon the 2nd and 3rd vanishing points of the desired set. [0022] In an embodiment, the step of calculating a transformation matrix, or equivalent product of a camera projection matrix and rotation matrix, for each desired vanishing point set is calculated according to:
where n is a corresponding 3D vector for an image centre, and index 2 corresponds to the vertical vanishing point. [0023] In an embodiment, the step of calculating the vanishing point sets for each image that have maximum global axis alignment for all images using the transformation matrix comprises selecting the sets wherein angle deviations between the coordinate system derived from acceleration values and magnetic field strengths and the image lines are minimised. [0024] In an embodiment, the step of calculating the vanishing point sets comprises identifying vanishing point triplet candidates in a first captured image by: i. determining feature points between the images by generating rotation and scale independent descriptors for each image and matching feature points between said images; ii. calculating a relative pose between images using a RANSAC or Least-Median-of-Squares approach; iii. randomly selecting at least two intercepting lines and computing a 1st vanishing point candidate as the 2D intersection of this line pair; and iv. converting the 2D intercept vanishing point candidate into a 3D unit vector using the camera projection matrix and normalisation. [0025] In an embodiment, the step of calculating the vanishing point sets comprises calculating a 2nd vanishing point candidate as the intersection of the remaining line of the randomly selected three intercepting lines and the line representing the set of all
possible vanishing points perpendicular to the 1st candidate as defined by all points (x, y) that satisfy:
[0026] In an embodiment, the step of calculating the vanishing point sets comprises calculating a 3rd vanishing point candidate using a cross product of the first two vanishing point candidates and the camera projection matrix by counting the number of inlier lines that fit the axes represented by the vanishing point candidates and checking if an angle difference to any axis representing the vanishing points is less than a threshold of between 0.1 to 5 degrees. [0027] In an embodiment, the step of calculating the vanishing point sets comprises iteratively identifying vanishing point triplet candidates to improve accuracy. [0028] In an embodiment, the step of determining aligned lines radiating from said vanishing point sets comprises obtaining axis aligned lines in each image by determining lines substantially parallel with each axis associated with each vanishing point determined for an image, and merging such substantially parallel lines according to a predetermined distance between them. [0029] In an embodiment, selecting the vanishing point sets with minimum angle deviation comprises deriving an angle deviation for the vertical axis, by projecting the vertical vanishing point into 3D space using the transformation matrix, and projecting the magnetic field strength into 2D using the coordinate system and back to 3D using the transformation matrix, with transformation matrices of subsequent images synchronised via rotating by
multiples of 90° with respect to the vertical axis of the coordinate system. [0030] In an embodiment, the step of determining aligned lines radiating from said vanishing point sets that share common axes in the coordinate system comprises: a. for each image, defining lines radiating from the respective vanishing point over the image coordinate domain such that the angles between adjacent lines are inversely proportional to the average radial distance from the vanishing point; b. for each line generated in step (a) above, collecting and storing edge information at each pixel from the image that is within a predetermined distance of said line; c. separating pixel entries along said line into either noise or signal depending on whether a pixel edge slope is reasonably parallel to the line; and d. using graph-cut methods, separating the signal from the noise along the line to identify the resulting line segments. [0031] In an embodiment, the step of matching corresponding lines between the images using belief-propagation techniques comprises execution of a suitable belief propagation algorithm which is iteratively performed at least twice. [0032] In an embodiment, the belief propagation algorithm accounts for colour values, e.g. RGB, YCbCr etc., for pixels on either side of lines and an overlap ratio of a span of angles about the epipoles in 3D covered by each line. [0033] In an embodiment, the method includes the step of exporting, via the processor, the 3D model to an external CAD file and/or for display on a screen.
[0034] According to a second aspect of the invention there is provided a photogrammetry surveying system comprising: a camera for capturing at least two images of an area for survey, each image to be captured from a different position; an accelerometer configured to record an acceleration value at each image capture position; a clock configured to record a timestamp of when each image is captured; and a processor arranged in signal communication with the camera, accelerometer and clock, said processor configured to: i. calculate coordinates and camera orientation of each image capture position in a coordinate system using said recorded acceleration value and timestamp; ii. detect straight-line edges within each image; iii. identify vanishing point sets of the straight-line edges for each image; iv. calculate a transformation matrix to transform local axes to global axes for each vanishing point set in each image; v. determine aligned lines radiating from said vanishing point sets that share common axes in the coordinate system; vi. locate epipoles in each image using the aligned lines; vii. match corresponding lines between the images using belief- propagation techniques; and viii. compile a 3D model of the area for survey using the matched corresponding lines. [0035] In an embodiment, the photogrammetry surveying system is unitary as a single, man-portable electronic device, such as a smartphone or tablet. [0036] In an embodiment, the processor is configured to perform the described operations by means of a suitable set of software instructions comprising an application or ‘app’.
[0037] In an embodiment, the photogrammetry surveying system comprises an orientation sensor configured to record a camera orientation at each image capture position. [0038] In an embodiment, the orientation sensor comprises either or both of a magnetometer configured to record a magnetic field strength at each image capture position and/or a camera video feed to calculate image capture positions, via the processor, using monocular odometry. [0039] In an embodiment, the processor is configured to calculate coordinates of each image capture position and a camera orientation in a 3D Euclidean coordinate system where one axis is upwards (from the acceleration value, typically after low-pass filtering) and another axis is derived from the north magnetic pole (from the magnetic field strength) at each image capture timestamp. [0040] In an embodiment, the processor is configured to calculate an approximate path between the different positions in the coordinate system where images are captured using the acceleration values, orientation and timestamps to facilitate in locating the epipoles in each image. [0041] In an embodiment, the processor is configured to detect straight-line edges within an image by: a. scaling down the image to reduce computation time; b. identifying an edge intensity and edge slope angle through an edge detection algorithm for representative pixels in the image; c. calculating curves by connecting pixels with such edge information; and d. identifying potential straight-line segments within the calculated curves.
[0042] In an embodiment, the processor is configured to identify vanishing point sets for an image by identifying candidates for triplets of vanishing points within the image. [0043] In an embodiment, the processor is configured to identify vanishing point sets for an image by: a. obtaining an estimate for a vertical vanishing point by transforming an estimate for a global vertical direction into a point in the coordinate system using the camera orientation; b. mapping the detected straight-line edges as points within twisted parallel coordinate (PC) line space; c. for each line transformed via mapping into a point in PC space, selecting a set of points such that when transformed into PC space, their lines intercept that point at angles (β) that are uniformly distributed; and d. recording a minimum magnitude Hough transform (R, Θ) to represent each point (a, b). [0044] In an embodiment, the processor is configured to identify vanishing point sets for an image by iteratively determining new vanishing point candidates based on the points (a, b) and vanishing point estimates from earlier iterations. [0045] In an embodiment, the processor is configured to identify vanishing point sets for an image by extracting vanishing point estimates from a mode of input points defined in terms of R and Θ from the Hough transform. [0046] In an embodiment, the processor is configured to identify vanishing point triplet candidates for an image by, for each iteratively determined vanishing point candidate, obtaining two associated vanishing points by, for each line transformed via mapping into a point in PC space, selecting a set of points such that when transformed into PC space, their lines intercept that
point at angles (β) that are uniformly distributed and the resulting points generated are perpendicular in 3D space to an axis defined by the vertical vanishing point candidate, as defined by all points (x, y) that satisfy: (| ^^ | 1 √ − 1) ^^ 1 − 1 ^^2| ^^|2 + 1 tan([ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^]/2) ^^. [ ^^ ] = − , ^^ = ^^ √[ ^^ ^^ ^^ ^^ℎ]2 + [ℎ ^^ ^^ ^^ℎ ^^]2/2 [0047] In an embodiment, the processor is configured to identify vanishing point triplet candidates for an image by, for each identified vanishing point in a set, counting a number of points (a, b) close to such vanishing point set and selecting a desired set with the highest product of such count for each vanishing point in the set, and generating two additional vanishing point candidate sets by iterating upon the 2nd and 3rd vanishing points of the desired set. [0048] In an embodiment, the processor is configured to calculate a transformation matrix, or equivalent product of a camera projection matrix and rotation matrix, for each desired vanishing point set according to:
where n is a corresponding 3D vector for an image centre. [0049] In an embodiment, the processor is configured to calculate the vanishing point sets for each image that have maximum alignment for all images using the transformation projection matrix by selecting the sets wherein angle deviations between the
coordinate system derived from acceleration values and magnetic field strengths and the image lines are minimised. [0050] In an embodiment, the processor is configured to identify vanishing point triplet candidates in a first captured image by: i. determining feature points between the images by generating rotation and scale independent descriptors for each image and matching feature points between said images; ii. calculating a relative pose between images using a modified RANSAC or Least-Median-of-Squares approach; iii. randomly selecting at least two intercepting lines and computing a 1st vanishing point candidate as the 2D intersection of this line pair; and iv. converting the 2D intercept vanishing point candidate into a 3D unit vector using the camera projection matrix and normalisation. [0051] In an embodiment, the processor is configured to calculate a 2nd vanishing point candidate as the intersection of the remaining line of the randomly selected three intercepting lines and the line representing the set of all possible vanishing points perpendicular to the 1st candidate as defined by all points (x, y) that satisfy:
[0052] In an embodiment, the processor is configured to calculate a 3rd vanishing point candidate using a cross product of the first two vanishing point candidates and the camera projection matrix by counting the number of inlier lines that fit the axes represented by the vanishing point candidates and checking if an
angle difference to any axis representing the vanishing points is less than a threshold of between 1 to 5 degrees. In an embodiment, the processor is configured to identify vanishing point triplet candidates by iteratively performing the above steps to improve accuracy. [0053] In an embodiment, the processor is configured to obtain axis aligned lines in each image by determining lines substantially parallel with each axis associated with each vanishing point determined for an image, and merging such substantially parallel lines according to a predetermined distance between them. [0054] In an embodiment, the processor is configured to select the sets with minimum angle deviation by deriving an angle deviation for the vertical axis by projecting the vertical vanishing point into 3D space using the transformation matrix, and projecting the magnetic field strength into 2D using the coordinate system and back to 3D using the transformation matrix, with transformation matrices of subsequent images synchronised via rotating by multiples of 90° with respect to the vertical axis of the coordinate system. [0055] In an embodiment, the processor is configured to determine aligned lines radiating from said vanishing point sets that share common axes in the coordinate system by: a. for each image, defining lines radiating from the respective vanishing point over the image coordinate domain such that the angles between adjacent lines are inversely proportional to the average radial distance from the vanishing point; b. for each line generated in step (a) above, collecting and storing edge information at each pixel from the image that is within a predetermined distance of said line;
c. separating pixel entries along said line into either noise or signal depending on whether a pixel edge slope is reasonably parallel to the line; and d. using graph-cut methods, separating the signal from the noise along the line to identify the resulting line segments. [0056] In an embodiment, the processor is configured to match corresponding lines between the images using belief-propagation techniques by execution of a suitable belief propagation algorithm which is iteratively performed at least twice. [0057] In an embodiment, the belief propagation algorithm accounts for colour values for pixels on either side of lines and an overlap ratio of a span of angles about the epipoles in 3D covered by each line. [0058] In an embodiment, the processor is configured to export the 3D model to an external CAD file and/or display said 3D model on a screen. [0059] According to a further aspect of the invention there is provided a computer programme product which, when executed by a suitable processing system, facilitates the performance of the photogrammetry surveying method according to the first aspect of the invention above. [0060] According to a yet further aspect of the invention there is provided a photogrammetry surveying method and an associated photogrammetry surveying system, substantially as herein described and/or illustrated.
BRIEF DESCRIPTION OF THE DRAWINGS The description will be made with reference to the accompanying drawings in which: Figure 1 is a functional block diagrammatic representation of representative method steps for a photogrammetry surveying method, in accordance with an aspect of the present invention; Figure 2 is a diagrammatic representation of a photogrammetry surveying system, in accordance with an aspect of the present invention; Figure 3 shows examples of two images captured by a camera of an area for survey, with each image captured from a different position or angle; Figure 4 is a graphical representation of an example where points in image coordinate space is transformed into points within twisted parallel coordinate (PC) line space; Figure 5 is a graphical representation of an example which clarifies a ‘smoothness’ function, ^^i,j( ^^, ^^) aspect of a belief propagation algorithm for line matching between images; Figure 6 is a graphical representation of an example of an input to a straight-line edge detection algorithm, i.e. edge intensities for each pixel before pixels are connected to form straight-line segments within the image of Figure 3a; Figure 7 is a graphical representation of an example where the detected straight-lines of Figure 6 are mapped as points within twisted parallel coordinate (PC) line space with R on the x-axis and Theta on the y-axis, showing final vanishing points;
Figure 8 is a graphical representation of an example where vanishing points sets have been determined in the image of Figure 3a that align best across all lines radiating from determined vanishing points; Figure 9 is a graphical representation of an example where axis aligned line segments of Figure 3a have been detected; Figure 10 is a graphical representation of an example of a 3D model that has been compiled of the image of Figure 3a and 3b as a result of the photogrammetry surveying method; and Figure 11 is a graphical representation of an alternative example for obtaining axis aligned line segments in each image. DETAILED DESCRIPTION OF EMBODIMENTS [0061] Further features of the present invention are more fully described in the following description of several non-limiting embodiments thereof. This description is included solely for the purposes of exemplifying the present invention to the skilled addressee. It should not be understood as a restriction on the broad summary, disclosure or description of the invention as set out above. [0062] In the figures, incorporated to illustrate features of the example embodiment or embodiments, like reference numerals are used to identify like parts throughout. Additionally, features, mechanisms and aspects well-known and understood in the art will not be described in detail, as such features, mechanisms and aspects will be within the understanding of the skilled addressee. [0063] Additionally, where appropriate, the accompanying figures do not represent engineering or design drawings, but provide a functional overview of the invention only. As a result,
features and practical construction details required for various embodiments of the invention may not be indicated in the figures, but such construction requirements will be within the understanding of the skilled addressee. [0064] Broadly, the present invention provides for a photogrammetry surveying method 10, and an associated photogrammetry surveying system 50, which is able to produce a 3D model output from photographs by general means of solving line to line matches directly without requiring the generation of point clouds, i.e. individual pixels in 2D images converted to 3D points in space, as an intermediary step, as is the case with conventional methods in this space. [0065] In particular, the method 10 and system 50 uses specific extraction techniques for vanishing points in captured images. In one embodiment, vanishing points comprise an intercept in image coordinates of all parallel lines in 3D space when projected into a 2D space, from a finitely bounded range of 2D points defined by a smallest magnitude Hough transform of lines in the twisted parallel coordinate line coordinate space. In another embodiment, vanishing points are extracted via a RANSAC approach with randomised line intersections, as described in more detail herein. Specifically, such extraction of vanishing points of an image makes use of accelerometer sensor information to filter potential vanishing points, as well as a selection of best-case vanishing points between two or more images using magnetometer or magnetic field sensor information, as described in more detail below. [0066] With reference now to the accompanying drawings, Figure 1 broadly shows method steps of such a photogrammetry surveying method 10. The method 10 generally comprises the steps of capturing 14, by means of a camera, at least two images of an area for survey 12, with each image captured from a different position. Figure 3a and 3b show examples of such captured images of photographs of an
area for survey 12. Of course, more than two images may also be captured. [0067] Method 10 then typically includes the steps of recording 14 an acceleration value with an accelerometer, optionally recording 16 a magnetic field strength with a magnetometer, and recording 18 a timestamp with a clock, at each image capture position when an image is captured. The skilled addressee is to appreciate that such acceleration values and magnetic field strength may be continuously recorded as well, typically in order to facilitate estimation of an approximate path between image capture positions, as described below. In an alternative embodiment, camera orientation may be sensed via a suitable orientation sensor 56, at each image capture position. Such an orientation sensor 56 may comprise either or both of a magnetometer configured to record a magnetic field strength at each image capture position and/or a camera video feed to calculate image capture positions, via the processor, using monocular odometry. [0068] Method 10 then typically comprises the step of calculating 20, by means of a suitable processor, coordinates of each image capture position and an associated camera orientation in a coordinate system using the recorded acceleration value, magnetic field strength and timestamp. In one embodiment, the method 10 optionally includes the step of calculating 22, via the processor, an approximate path between the different positions in the coordinate system where images are captured using the acceleration values, magnetic field strengths and timestamps to facilitate in locating the epipoles in each image, as described in more detail below. Such approximate path calculation between image capture positions may include additional or continuous recordings of acceleration values and magnetic field strengths. [0069] Method 10 further generally comprises the steps of detecting 22 straight-line edges within each image, identifying 24
vanishing point sets of the straight-line edges for each image, calculating 26 a transformation matrix for each vanishing point set, calculating 28 the vanishing point sets for each image that have maximum alignment for all images using the transformation matrix, determining 30 aligned lines radiating from said vanishing point sets that share common axes in the coordinate system, locating 32 epipoles in each image using the aligned lines, matching 34 corresponding lines between the images using belief- propagation techniques, and compiling 36 a 3D model of the area for survey using the matched corresponding lines. In a typical example, the method 10 also includes the step of exporting 38 the 3D model to an external CAD file and/or for display on a screen. [0070] In this manner, method 10 allows for the generation of accurate 3D models and construction/engineering drawings from captured images without requiring the generation of point clouds, making the method 10 less computationally intensive, faster for technicians during postprocessing of such 3D models, and less expensive than conventional methods that often require lidar, laser scanning techniques and or numerous input images. [0071] With reference to Figure 2, the skilled addressee is to appreciate that the present invention includes an associated photogrammetry surveying system 50. Such a system 50 is typically a unitary, man-portable electronic device, such as a smartphone or tablet, but of course variations hereon are possible and anticipated. [0072] Such a system 50 generally comprises a camera 52 for capturing at least two images of an area for survey 12, an accelerometer 54 configured to record an acceleration value at each image capture position, a magnetometer 56 configured to record a magnetic field strength at each image capture position, a clock 58 configured to record a timestamp of when each image is captured,
and a processor 60 arranged in signal communication with the camera 52, accelerometer 54, magnetometer 56 and clock 58. [0073] Similar with the method 10, the processor 60 is generally configured to calculate coordinates of each image capture position and a camera orientation in a coordinate system using the recorded acceleration value, magnetic field strength and timestamp. [0074] Following such calculations, the processor 60 is then configured to detect straight-line edges within each image, identify vanishing point sets of the straight-line edges for each image, calculate a transformation matrix for each vanishing point set, calculate the vanishing point sets for each image that have maximum alignment for all images using the transformation matrix, determine aligned lines radiating from said vanishing point sets that share common axes in the coordinate system, locate epipoles in each image using the aligned lines, match corresponding lines between the images using belief-propagation techniques, and compile a 3D model of the area for survey 12 using the matched corresponding lines. The processor 60 may further be configured to export and/or display such compiled 3D model. [0075] In light of the above broad disclosure, a specific example of one embodiment of the photogrammetry method 10, as generally performable by the system 50, will now be described in more detail. For the sake of clarity, the above broad method steps will be numbered for reference purposes to facilitate subsequent reference to particular steps thereof. [0076] Step 1 - capture a minimum of two photographs using a camera 52. Typically, the camera 52 is comprised within a unitary device, such as a smartphone, which is also equipped with orientation sensors, typically in the form of an accelerometer 54 and magnetometer 56 or magnetic field sensor, with such sensors
recording the necessary data with timestamps from clock 58 when the images or photographs are captured. [0077] Step 2 - calculate the approximate camera device orientations in XYZ global coordinates, where positive Z is typically ‘up’ and positive Y points to magnetic north, at each image capture time from sensor information. [0078] Step 3 - Calculate the approximate path taken by the user between photographs using the sensor information. This is optional, but can be used to facilitate with step 9 below. [0079] Step 4 - detect straight-line edges within each image. This is generally done by the processor 60 configured to: a. scale down the image to reduce computation time; b. identify the edge intensity and edge slope angle through an edge detection algorithm for representative pixels in the image; c. calculate curves by connecting pixels with edge information; and d. identify potential straight-line segments within the detected curves. [0080] Step 5 - identify candidates for triplets of vanishing points in each image. This is generally done by the processor 60 configured to: a. obtain an estimate for the vertical vanishing point by transforming the estimate for the global Z direction into a point in image coordinates, utilising the camera’s known angle of view; b. map the detected straight-lines in step 4 as points within twisted parallel coordinate (PC) line space, as represented by Figure 4. For each line transformed into a point in PC space, select a set of points such that when transformed into PC space, their lines intercept
that point at angles (β) that are uniformly distributed. Record the smallest magnitude Hough transform (R, Θ) to represent each point (a, b); and c. determine new vanishing point candidates iteratively based on the points generated in step 5b and vanishing point estimates from earlier iterations. Points generated in step 5b are filtered according to the iteration number as below: Iteration Vanishing Points used in this iteration should number point type be… 1 Vertical close to the vanishing point in step 5a 2 Horizontal close to the line in image coordinate space that represents all points in 3D space that are perpendicular to the axis defined by the vertical vanishing point estimate defined as the average of the result in iteration 1 and step 5a 3 Horizontal close to the best estimate for a 3rd 4 Vertical vanishing point based on the last two 5 Horizontal vanishing point estimates; if one of the two previous vanishing points is vertical, that vertical vanishing point should be averaged with the vanishing point obtained from step 5a, as an input for the 3rd vanishing point estimation [0081] Vanishing point estimates can be extracted from the mode of the input points, defined in terms of R and Θ in step 5b. The original screen coordinates of the vanishing points can be obtained from the following expression:
^^ − ^^ ^^ = , ^^ = 0 + ^^ ∗ ^^ ^^ ^^(cos( ^^)) sin( ^^) tan( ^^) a. For each vanishing point candidate as results of the iterations in step 5c, the associated remaining two vanishing points are obtained. This is done by following step 5b, with the additional constraint that the points generated must be perpendicular in 3D space to the axis defined by the vertical vanishing point candidate. This line is defined by all points (x, y) that satisfy:
b. The best vanishing point candidate set from step 5d is identified. For each vanishing point in a candidate set, the number of points from step 5b close to the vanishing point is counted. The best set is then the highest product of the counts for each vanishing point in the set. c. Two additional vanishing point candidate sets are generated by iterating upon the 2nd and 3rd vanishing points of the best set from step 5e. The 1st vanishing point in the new sets are obtained by pre-filtering points in a similar way to step 5c. However, the filter instead excludes (i) all lines from step 4 that are close to the vanishing points from step 5e except the vanishing point being iterated on, and (ii) all lines from step 4 that are not close to the vanishing point being iterated on. The remaining vanishing points for the new sets are obtained by applying step 5d to the 1st vanishing point of each new set. d. Reorder the vanishing points in step 5e and step 5f to have the vertical vanishing point as the 3rd vanishing point.
[0082] In general, without such an iterative approach, sensor information and appropriate filters, the first vanishing point can be incorrectly chosen. For example, if there are strong or several edges detected in an image that intercept each other but are not parallel in 3D space (e.g. the edges of a doorframe at the corner of a door from vertical and horizontal lines), that intercept may be chosen as a vanishing point, which is incorrect. The use of accelerometer data throughout iterations to guide the detection, and a final check between images using magnetic field data as well in step 7, produces the correct vanishing points reliably. [0083] Step 6 - obtain the transformation matrices for each vanishing point set from step 5g for each image. These can be obtained from the following expression (where n is the corresponding 3D vector for the image centre):
or equivalent product of a camera projection matrix and rotation matrix, as will be understood by the skilled addressee. [0084] Step 7 - determine the vanishing points sets in each image that align best across all images. The best pairing should minimise the angle deviations between the global coordinate systems derived from sensor data and those derived from the image lines. That is, the sum of the cosine of the deviation angles, squared, should be maximised. The angle deviation for the Z axis (up vector) can be derived by projecting the vertical vanishing point from the sensors (step 5a) into 3D space using the transformation matrix (step 6). The angle deviation for the magnetic field between images can be determined in a similar way by projecting the magnetic field into 2D using local coordinates and back to 3D using the camera matrix. With the first image
defining the global axes, the transformation matrices for the other images can be synched with the first by rotating by a multiple of 90° with respect to the global Z axis. [0085] Step 8 - obtain axis aligned lines in each image. This is generally achieved by: a. For each XYZ axis, define lines radiating from the respective vanishing point over the image coordinate domain such that the angles between lines are equal. However, the angle between adjacent lines for different axes should be different to uniformly cover detail. In other words, the angle between adjacent lines should be inversely proportional to the average radial distance from the vanishing point:
b. For each line generated in step 8a: i. Collect edge information at each pixel (step 4b) from the image that is within a short distance of the line and store in memory. ii. Separate pixel entries along the line into either noise or signal depending on whether the pixel edge slope is reasonably parallel to the line. iii. Using graph-cut methods, separate the signal from the noise along the line to identify the resulting line segments. The t-link and n-link probability values are suggested as the following based on normal distributions for 1D and 2D cases ( ^^ is the edge slope intensity as a 2D vector and y is the direction perpendicular to the line direction): | ^^ ^ | ^^ = erf (√ ^^′ ^^ −1 ^^) ^ ^^ ^^ ^^ ^^ ^^ ^^ − erf ( ) ^^ ^^ ^^ ^^ ^^ ^^ ^^, ^^√2
[0086] Step 9 - Locate the epipoles in the images, i.e. find the displacement direction of the camera from the first image to the second image by matching some textures in one image to another. This is generally achieved by: a. for each image: i. a set of intercepts in screen coordinates are generated from pairs of lines found in step 8, where each pair of lines are not parallel in 3D. The intercepts are assigned a weight that is the product of line lengths of its parent lines. ii. A subset of the intercepts is selected (about 100 points). Intercepts that have a high assigned weight are more likely to be selected, and a penalty to the assigned weight is applied if other intercepts with high weights are nearby. iii. For each point in the subset, a pixel array about 41x41 in size is loaded from the image about the point’s centre. c. Using the transformation matrices for each image from step 6, transform each subset point into the local coordinate system of the other image. Create a representative pixel array of the same size as in step 9a - iii, but with the texture warped to the other image’s local coordinate system. d. Offset all textures created in the above steps such that the average RGB colour of each final textures is zero. e. Calculate the cosine of the angle between potential matching textures using the dot product over each colour value in the textures at a given location. Some cosine calculations can be skipped by assuming a maximum deviation from a given epipole estimate, such as from
previous iterations or from step 3. f. Accept matches that have a cosine value greater than 99% of the matches, assuming a normal distribution. g. The image epipole can then be found as the average intercept of all lines created from matching points within the same local image coordinate systems. [0087] Step 10 - lines between images are matched through belief propagation. This is analogous to matching pixels in one image to a row of pixels in another image but with some key differences to account for the increased network complexity. In a typical embodiment, the belief propagation equations are:
Where: - i and j are elements (normally pixels, but in this case lines) in the first image, and s and t are elements in the second image; - ^^ ^^ ^^ ^^̃ ( ^^) = ln(∑ ^^ ^^ ^^ ); - ^^ ^^( ^^) is the ‘data’ function; - ^^ ^^ ^^( ^^, ^^) is the ‘smoothness’ function; - ^^ ^^ ( ^^) is the set of all neighbours of element i in the network when comparing line i with s; - ^^ ^ ^ ^^ ^^ ( ^^) is how much element i ‘believes’ element j matches element t at iteration k; - ^^ ^^ ( ^^) is related to the probability that element i matches j through a power relationship. [0088] Step 11 - calculate the lines in 3D space that were matched to form a 3D model. The recommended ‘data’ function to use for matching lines is a linear sum of (i) the squared differences of RGB colour values for pixels either side of the lines, and (ii)
the overlap ratio (between 0 and 1) of the span of angles about the epipole in 3D covered by each line.
[0089] To optimise speed when iterating through all potential lines s for each line i, a lookup table with the best case matches for each line i (about 10) using the data function alone should be used to prune out unlikely matches. The ‘smoothness’ function, ^^ ^^ ^^ ( ^^, ^^), is 0 or a constant, depending on whether the lines i, j, s and t are statistically likely to match between images. [0090] Firstly, with reference to Figure 5, intercept points of lines i and j, and lines s and t, are determined. If lines i and j (or s and t) represent different axes in 3D space, then the intercepts are calculated as normal. However, if the lines represent the same axes in 3D space, then the intercept is determined as the intercept of the lines, if the 2nd vertex of each line were swapped. [0091] The null hypothesis for the statistical test is that the absolute difference in angles about the epipole axis in 3D is not equal to 0. The probability density function is derived from the displacement in angles from one uniform range, representing (the 1st image’s) lines i and j, and another, representing (the 2nd image’s) lines s and t. For each line pair, if the lines represent the same 3D axis, then the range limits ( ^^ ^^ ^^0 and ^^ ^^ ^^1, or ^^ ^^ ^^0 and ^^ ^^ ^^1) are the outer two angles from the four input vertices. Otherwise, the range limits are the middle two angles from the four input vertices.
[0092] For the null hypothesis to be rejected (and for the smoothness function to be a constant), the following probability inequality must be true when using a confidence level of 95%:
≤ 0.05 [0093] The smoothness function is thus:
[0094] For lines i and j to be considered as valid neighbour nodes in the network (i.e. ^^ ∈ ^^ ^^( ^^)): - the minimum distance between the line vertices should be below a threshold (e.g. 10 pixels); and - there must be at least one line t where ^^ ^^ ^^ ( ^^, ^^)
0, when comparing against a particular line s [0095] For good accuracy, the belief propagation algorithm should be performed a few times (2 or 3) and the results should be checked by performing the algorithm with the image roles reversed. [0096] Step 11 - calculate the lines in 3D that were matched to form a 3D model. [0097] Step 12 - export the 3D model to an external CAD file or display directly to the user through a screen. [0098] In an alternative embodiment, Step 5 above onwards may be substituted by the following steps, i.e. new Step 5, where
candidates for triplets of vanishing points are identified in the first captured image by (a) obtaining an estimate for the vertical vanishing point by transforming the estimate for the global Z direction into a point in image coordinates, utilising the camera’s known angle of view, and then (b) locating the pose between consecutive images by: i. Determining feature points from the images, generate rotation and scale independent descriptors for each, and match feature points between images. This can be done, for example, using the SIFT method, as described in US patent no. 6,711,293B1; ii. Calculating the relative pose between images using a modified RANSAC (or Least-Median-of-Squares) approach that includes an orientation check based on accelerometer and/or magnetic field sensor data to increase the probability of selecting the correct pose. At each calculation of a pose (or batch of calculations) using randomly selected point pairs (5 recommended), the pose result is to be rejected if the sensor derived orientation vector (e.g. the averaged gravity vector representing the vertical axis) of one image, rotated using the pose, does not match the corresponding sensor derived orientation of the next image within an angle tolerance (of about 3 degrees). c. Randomly selecting (without replacement) three detected straight-lines from step 4. These lines can be from any consecutive set of images where the relative poses are known. Lines not in the first image need to be transformed into the first image’s image coordinate system using the poses from (new) step 5b and the image camera projection matrix. d. For each sub selection of two lines chosen from the three lines in (new) step 5c (there are six configurations of
this), compute a vanishing point candidate as the 2D intersection of this line pair. Convert this 2D intercept into a 3D unit vector using the camera projection matrix and normalisation. If this 3D resultant vector is parallel or perpendicular to the vertical vector estimate used for step 5a (within about 3 degrees) proceed to (new) step 5e, otherwise select another line pair configuration and intercept, or (if all configurations are processed) select new lines by repeating (new) step 5c. e. Calculate the 2nd vanishing point of the triplet as the intersection of the remaining line from (new) step 5d and the line representing the set of all possible vanishing points perpendicular to the 1st candidate. The latter line is defined by all points (x, y) that satisfy:
f. Calculate the 3rd vanishing point using the cross product. The input vectors can be obtained from the first two vanishing points and the camera projection matrix. g. Count the number of inlier lines that fit the axes that represent the vanishing point candidates. This can be done by transforming each 2D line into a 3D plane of the first image’s local 3D coordinate system and checking if the angle difference to any axis representing the vanishing points is less than a threshold (about 3 degrees). The cosine of the angle difference can be obtained from the following expression in terms of the vanishing point index (i), axis aligned unit vector ( ^^ ^^), and normalised line end points as vectors in local 3D camera space ( ^^1 and ^^2):
h. Repeat (new) steps 5c to 5g until a reasonable accuracy is obtained. About 10000 iterations typically gives reasonable results quickly. i. Multiple valid sets of 3D XYZ axes may be appropriate for a set of images. To (optionally) collect an additional valid triplet of vanishing points, repeat (new) steps 5c to 5h with the following changes: i. Select 2 random lines only (instead of 3) in (new) step 5c ii. Select the vertical vanishing point from (new) step 5h as the first vanishing point candidate instead of performing (new) step 5d. [0099] The step of determining the vanishing points sets in each consecutive image set that align best across all images is no longer mandatory as the relative poses between images are calculated using feature points in (new) step 5b. However, if the pose calculation fails between consecutive images (e.g. because the person went to a different room to take the next photograph), this step is required to link them. [00100] In light of the above alternative embodiment, previous Step 8 for obtaining axis aligned lines in each image can also be replaced by: a. For each line detected in step 4, mark whether each line could be parallel (in 3D) to each axis associated with each vanishing point determined for that image. Refer to (new) step 5g. b. Combine lines in each image to form a smaller set of lines (refer to figure 11 below). For each pair of lines within each image marked with the same vanishing point(s) from (new) step 8, check if they can be merged
based on the gap distance between them. Referring to the Figure 11 of the accompanying drawing, the radial distance should be less than about 5 pixels and the arc distance should be less than about 1 pixel. Checking whether bounding boxes intersect (within a gap distance threshold) before calculating the gap distances can significantly speed up this process. [00101] Merging lines can be done by: i. Letting a point on the final merged line to be the length weighted average of each line’s midpoint; ii. Letting the merged line direction be the direction of the sum of each line vector (in the same direction away or to the vanishing point); and iii. Then determining the end points. [00102] The skilled addressee is to appreciate that the above- described alternative steps also apply to the method 10. [00103] Applicant believes it particularly advantageous that the present invention provides for method 10 and associated system 50 which is able to provide rapid processing of captured images to produce a 3D model of comparable accuracy to LiDAR supported techniques without hardware specific requirements and associated higher costs. [00104] Optional embodiments of the present invention may also be said to broadly consist in the parts, elements and features referred to or indicated herein, individually or collectively, in any or all combinations of two or more of the parts, elements or features, and wherein specific integers are mentioned herein which have known equivalents in the art to which the invention relates, such known equivalents are deemed to be incorporated herein as if individually set forth. In the example embodiments, well-known processes, well-known device structures, and well-known
technologies are not described in detail, as such will be readily understood by the skilled addressee. [00105] The use of the terms "a", "an", "said", "the", and/or similar referents in the context of describing various embodiments (especially in the context of the claimed subject matter) are to be construed to cover both the singular and the plural, unless otherwise indicated herein or clearly contradicted by context. The terms "comprising," "having," "including," and "containing" are to be construed as open-ended terms (i.e., meaning "including, but not limited to,") unless otherwise noted. As used herein, the term "and/or" includes any and all combinations of one or more of the associated listed items. No language in the specification should be construed as indicating any non-claimed subject matter as essential to the practice of the claimed subject matter. [00106] It is to be appreciated that reference to "one example" or "an example", or similar exemplary language, is not made in an exclusive sense. Accordingly, one example may exemplify certain aspects of the invention, whilst other aspects are exemplified in a different example. Variations of one or more embodiments described herein might become apparent to those of ordinary skill in the art upon reading this application. The inventor(s) expects skilled artisans to employ such variations as appropriate, and the inventor(s) intends for the claimed subject matter to be practiced other than as specifically described herein. [00107] Any method steps, processes, and operations described herein are not to be construed as necessarily requiring their performance in the particular order discussed or illustrated, unless specifically identified as an order of performance. It is also to be understood that additional or alternative steps may be employed.
Claims
CLAIMS 1. A photogrammetry surveying system comprising: a camera for capturing at least two images of an area for survey, each image to be captured from a different position; an accelerometer configured to record an acceleration value at each image capture position; a clock configured to record a timestamp of when each image is captured; and a processor arranged in signal communication with the camera, accelerometer and clock, said processor configured to: i. calculate coordinates and camera orientation of each image capture position in a coordinate system using said recorded acceleration value and timestamp; ii. detect straight-line edges within each image; iii. identify vanishing point sets of the straight-line edges for each image; iv. calculate a transformation matrix to transform local axes to global axes for each vanishing point set in each image; v. determine aligned lines radiating from said vanishing point sets that share common axes in the coordinate system; vi. locate epipoles in each image using the aligned lines; vii. match corresponding lines between the images using belief-propagation techniques; and viii. compile a 3D model of the area for survey using the matched corresponding lines.
2. The system of claim 1, which is unitary as a single, man- portable electronic device, such as a smartphone or tablet.
3. The system of either of claims 1 or 2, wherein the processor is configured to perform the described operations by
means of a suitable set of software instructions comprising an application or ‘app’.
4. The system of either of claims 1 to 3, which comprises an orientation sensor configured to record a camera orientation at each image capture position.
5. The system of claim 4, wherein the orientation sensor comprises either or both of a magnetometer configured to record a magnetic field strength at each image capture position and/or a camera video feed to calculate image capture positions, via the processor, using monocular odometry.
6. The system of any of claims 1 to 5, wherein the processor is configured to calculate coordinates of each image capture position and a camera orientation in a 3D Euclidean coordinate system where one axis is upwards (from the acceleration value, typically after low-pass filtering) and another axis is derived from the north magnetic pole (from the magnetic field strength) at each image capture timestamp.
7. The system of any of claims 1 to 6, wherein the processor is configured to calculate an approximate path between the different positions in the coordinate system where images are captured using the acceleration values, orientation and timestamps to facilitate in locating the epipoles in each image.
8. The system of any of claims 1 to 7, wherein the processor is configured to detect straight-line edges within an image by: a. scaling down the image to reduce computation time;
b. identifying an edge intensity and edge slope angle through an edge detection algorithm for representative pixels in the image; c. calculating curves by connecting pixels with such edge information; and d. identifying potential straight-line segments within the calculated curves.
9. The system of any of claims 1 to 8, wherein the processor is configured to identify vanishing point sets for an image by identifying candidates for triplets of vanishing points within the image.
10. The system of any of claims 1 to 9, wherein the processor is configured to identify vanishing point sets for an image by: a. obtaining an estimate for a vertical vanishing point by transforming an estimate for a global vertical direction into a point in the coordinate system using the camera orientation; b. mapping the detected straight-line edges as points within twisted parallel coordinate (PC) line space; c. for each line transformed via mapping into a point in PC space, selecting a set of points such that when transformed into PC space, their lines intercept that point at angles (β) that are uniformly distributed; and d. recording a minimum magnitude Hough transform (R, Θ) to represent each point (a, b).
11. The system of claim 10, wherein the processor is configured to identify vanishing point sets for an image by iteratively determining new vanishing point candidates based
on the points (a, b) and vanishing point estimates from earlier iterations.
12. The system of any of claims 10 to 11, wherein the processor is configured to identify vanishing point sets for an image by extracting vanishing point estimates from a mode of input points defined in terms of R and Θ from the Hough transform.
13. The system of any of claims 10 to 12, wherein the processor is configured to identify vanishing point triplet candidates for an image by, for each iteratively determined vanishing point candidate, obtaining two associated vanishing points by, for each line transformed via mapping into a point in PC space, selecting a set of points such that when transformed into PC space, their lines intercept that point at angles (β) that are uniformly distributed and the resulting points generated are perpendicular in 3D space to an axis defined by the vertical vanishing point candidate, as defined by all points (x, y) that satisfy: (| ^^ | 1 √ − 1) ^^ 1 − 1 ^^2 ^^ 2 + 1 tan([ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^]/2) ^^. [ | | ^^ ] = − , ^^ = ^^ √[ ^^ ^^ ^^ ^^ℎ]2 + [ℎ ^^ ^^ ^^ℎ ^^]2/2
14. The system of any of claims 10 to 13, wherein the processor is configured to identify vanishing point triplet candidates for an image by, for each identified vanishing point in a set, counting a number of points (a, b) close to such vanishing point set and selecting a desired set with the highest product of such count for each vanishing point in the set, and generating two additional vanishing point candidate sets by iterating upon the 2nd and 3rd vanishing points of the desired set.
16. The system of any of claims 1 to 15, wherein the processor is configured to calculate the vanishing point sets for each image that have maximum alignment for all images using the transformation matrix by selecting the sets wherein angle deviations between the coordinate system derived from acceleration values and orientation and the image lines are minimised.
17. The system of any of claims 9 to 16, wherein the processor is configured to identify vanishing point triplet candidates in a first captured image by: i. determining feature points between the images by generating rotation and scale independent descriptors for each image and matching feature points between said images; ii. calculating a relative pose between images using a modified RANSAC or Least-Median-of-Squares approach; iii. randomly selecting at least two intercepting lines and computing a 1st vanishing point candidate as the 2D intersection of this line pair; and iv. converting the 2D intercept vanishing point candidate into a 3D unit vector using the camera projection matrix and normalisation.
18. The system of claim 17, wherein the processor is configured to calculate a 2nd vanishing point candidate as the intersection of the remaining line of the randomly selected three intercepting lines and the line representing the set of all possible vanishing points perpendicular to the 1st candidate as defined by all points (x, y) that satisfy: (| ^^| 1 √ 1 − 1) ^^ 1 − ^^2| ^^|2 + 1 tan ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ /2 ^^. [ ([ ] ) ^^ ] = − , ^^ = ^^ √[ ^^ ^^ ^^ ^^ℎ]2 + [ℎ ^^ ^^ ^^ℎ ^^]2/2
19. The system of claim 18, wherein the processor is configured to calculate a 3rd vanishing point candidate using a cross product of the first two vanishing point candidates and the camera projection matrix by counting the number of inlier lines that fit the axes represented by the vanishing point candidates and checking if an angle difference to any axis representing the vanishing points is less than a threshold of between 1 to 5 degrees.
20. The system of claim 19, wherein the processor is configured to obtain axis aligned lines in each image by determining lines substantially parallel with each axis associated with each vanishing point determined for an image, and merging such substantially parallel lines according to a predetermined distance between them.
21. The system of any of claims 15 to 20, wherein the processor is configured to select the sets with minimum angle deviation by deriving an angle deviation for the vertical axis by projecting the vertical vanishing point into 3D space using the transformation matrix, and projecting the magnetic field strength into 2D using the coordinate system and back to 3D using the transformation matrix, with transformation matrices
of subsequent images synchronised via rotating by multiples of 90° with respect to the vertical axis of the coordinate system.
22. The system of any of claims 1 to 21, wherein the processor is configured to determine aligned lines radiating from said vanishing point sets that share common axes in the coordinate system by: a. for each image, defining lines radiating from the respective vanishing point over the image coordinate domain such that the angles between adjacent lines are inversely proportional to the average radial distance from the vanishing point; b. for each line generated in step (a) above, collecting and storing edge information at each pixel from the image that is within a predetermined distance of said line; c. separating pixel entries along said line into either noise or signal depending on whether a pixel edge slope is reasonably parallel to the line; and d. using graph-cut methods, separating the signal from the noise along the line to identify the resulting line segments.
23. The system of any of claims 1 to 22, wherein the processor is configured to match corresponding lines between the images using belief-propagation techniques by execution of a suitable belief propagation algorithm which is iteratively performed at least twice.
24. The system of claim 23, wherein the belief propagation algorithm accounts for colour values for pixels on either side of lines and an overlap ratio of a span of angles about the epipoles in 3D covered by each line.
25. The system of any of claims 1 to 24, wherein the processor is configured to export the 3D model to an external CAD file and/or display said 3D model on a screen.
26. A photogrammetry surveying method comprising the steps of: capturing, by means of a camera, at least two images of an area for survey, each image captured from a different position; recording, with an accelerometer, at each image capture position, an acceleration value; recording, with a clock, at each image capture position, a timestamp of when an image is captured; calculating, by means of a processor, coordinates and camera orientation of each image capture position in a coordinate system using said acceleration value, orientation and timestamp; detecting, via the processor, straight-line edges within each image; identifying, via the processor, vanishing point sets of the straight-line edges for each image; calculating, via the processor, a transformation matrix to transform local axes to global axes for each vanishing point set in each image; determining, via the processor, aligned lines radiating from said vanishing point sets that share common axes in the global coordinate system; locating, via the processor, epipoles in each image using the aligned lines; matching, via the processor, corresponding lines between the images using belief-propagation techniques; and compiling, via the processor, a 3D model of the area for survey using the matched corresponding lines.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB2507345.3A GB202507345D0 (en) | 2022-12-07 | 2023-12-06 | Photogrammetry surveying method and system |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2022903735A AU2022903735A0 (en) | 2022-12-07 | Photogrammetry surveying method and system | |
AU2022903735 | 2022-12-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024119230A1 true WO2024119230A1 (en) | 2024-06-13 |
Family
ID=91378284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/AU2023/051262 WO2024119230A1 (en) | 2022-12-07 | 2023-12-06 | Photogrammetry surveying method and system |
Country Status (2)
Country | Link |
---|---|
GB (1) | GB202507345D0 (en) |
WO (1) | WO2024119230A1 (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6061468A (en) * | 1997-07-28 | 2000-05-09 | Compaq Computer Corporation | Method for reconstructing a three-dimensional object from a closed-loop sequence of images taken by an uncalibrated camera |
US20170316115A1 (en) * | 2015-12-09 | 2017-11-02 | Xactware Solutions, Inc. | System and Method for Generating Computerized Models of Structures Using Geometry Extraction and Reconstruction Techniques |
US20200388004A1 (en) * | 2018-02-26 | 2020-12-10 | Intel Corporation | Method and system of point cloud registration for image processing |
US20210056751A1 (en) * | 2019-08-23 | 2021-02-25 | Shanghai Yiwo Information Technology Co., Ltd. | Photography-based 3d modeling system and method, and automatic 3d modeling apparatus and method |
US20220284609A1 (en) * | 2019-08-28 | 2022-09-08 | Hover Inc. | Image analysis |
US11481970B1 (en) * | 2021-05-28 | 2022-10-25 | End To End, Inc. | Modeling indoor scenes using measurements captured using mobile devices |
-
2023
- 2023-12-06 WO PCT/AU2023/051262 patent/WO2024119230A1/en unknown
- 2023-12-06 GB GBGB2507345.3A patent/GB202507345D0/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6061468A (en) * | 1997-07-28 | 2000-05-09 | Compaq Computer Corporation | Method for reconstructing a three-dimensional object from a closed-loop sequence of images taken by an uncalibrated camera |
US20170316115A1 (en) * | 2015-12-09 | 2017-11-02 | Xactware Solutions, Inc. | System and Method for Generating Computerized Models of Structures Using Geometry Extraction and Reconstruction Techniques |
US20200388004A1 (en) * | 2018-02-26 | 2020-12-10 | Intel Corporation | Method and system of point cloud registration for image processing |
US20210056751A1 (en) * | 2019-08-23 | 2021-02-25 | Shanghai Yiwo Information Technology Co., Ltd. | Photography-based 3d modeling system and method, and automatic 3d modeling apparatus and method |
US20220284609A1 (en) * | 2019-08-28 | 2022-09-08 | Hover Inc. | Image analysis |
US11481970B1 (en) * | 2021-05-28 | 2022-10-25 | End To End, Inc. | Modeling indoor scenes using measurements captured using mobile devices |
Non-Patent Citations (7)
Title |
---|
"Thesis", 1 December 2015, UNIVERSITY OF AUCKLAND, New Zealand, article NGUYEN, HOANG MINH: "High-Fidelity 3D Structure Recovery Using Hybrid Image-based Modelling", pages: 1 - 219, XP009557773 * |
COELHO C., STRAFORINI M., CAMPANI M.: "Using geometrical rules and a priori knowledge for the understanding of indoor scenes", PROCEDINGS OF THE BRITISH MACHINE VISION CONFERENCE 1990, BRITISH MACHINE VISION ASSOCIATION, 1 January 1990 (1990-01-01), pages 41.1 - 41.6, XP093181978, DOI: 10.5244/C.4.41 * |
COLLINS R. T., WEISS R. S.: "VANISHING POINT CALCULATION AS A STATISTICAL INFERENCE ON THE UNIT SPHERE.", PROCEEDINGS / THIRD INTERNATIONAL CONFERENCE ON COMPUTER VISION : DECEMBER 4 - 7, 1990, OSAKA, JAPAN., IEEE COMPUTER SOC. PRESS, LOS ALAMITOS, CALIF, vol. CONF. 3, 4 December 1990 (1990-12-04), Los Alamitos, Calif , pages 400 - 403., XP000242627, ISBN: 978-0-8186-2057-7, DOI: 10.1109/ICCV.1990.139560 * |
DUDA, R. O. ET AL.: "Use of the Hough transformation to detect lines and curves in pictures", COMMUNICATIONS OF THE ACM, vol. 15, 1 January 1972 (1972-01-01), pages 11 - 15, XP058256218, DOI: 10.1145/361237.361242 * |
KALAROT RATHEESH, MORRIS JOHN, BERRY DAVID, DUNNING JAMES: "Analysis of Real-Time Stereo Vision Algorithms On GPU", INTERNATIONAL CONFERENCE ON IMAGE AND VISION COMPUTING NEW ZEALAND (IVCNZ), 1 January 2011 (2011-01-01), XP093181984 * |
PATRIK KAMENCAY ; MARTIN BREZNAN: "A stereo depth recovery method using belief propagation", RADIOELEKTRONIKA (RADIOELEKTRONIKA), 2011 21ST INTERNATIONAL CONFERENCE, IEEE, 19 April 2011 (2011-04-19), pages 1 - 4, XP031954140, ISBN: 978-1-61284-325-4, DOI: 10.1109/RADIOELEK.2011.5936462 * |
RADU ORGHIDAN ; JOAQUIM SALVI ; MIHAELA GORDAN ; BOGDAN ORZA: "Camera calibration using two or three vanishing points", COMPUTER SCIENCE AND INFORMATION SYSTEMS (FEDCSIS), 2012 FEDERATED CONFERENCE ON, IEEE, 9 September 2012 (2012-09-09), pages 123 - 130, XP032267090, ISBN: 978-1-4673-0708-6 * |
Also Published As
Publication number | Publication date |
---|---|
GB202507345D0 (en) | 2025-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10334168B2 (en) | Threshold determination in a RANSAC algorithm | |
Tardif | Non-iterative approach for fast and accurate vanishing point detection | |
US11651581B2 (en) | System and method for correspondence map determination | |
US8326025B2 (en) | Method for determining a depth map from images, device for determining a depth map | |
US20190080503A1 (en) | Methods and systems for surface fitting based change detection in 3d point-cloud | |
EP3273412B1 (en) | Three-dimensional modelling method and device | |
EP3903229B1 (en) | System and method for the recognition of geometric shapes | |
Urban et al. | Finding a good feature detector-descriptor combination for the 2D keypoint-based registration of TLS point clouds | |
Kim et al. | Evaluation of 3D feature descriptors for multi-modal data registration | |
O'Byrne et al. | A stereo‐matching technique for recovering 3D information from underwater inspection imagery | |
Bergström et al. | Virtual projective shape matching in targetless CAD-based close-range photogrammetry for efficient estimation of specific deviations | |
Weinmann et al. | Geometric point quality assessment for the automated, markerless and robust registration of unordered TLS point clouds | |
Holynski et al. | Reducing drift in structure from motion using extended features | |
Ventura et al. | P1ac: Revisiting absolute pose from a single affine correspondence | |
Angladon et al. | The toulouse vanishing points dataset | |
US20240242318A1 (en) | Face deformation compensating method for face depth image, imaging device, and storage medium | |
Tu et al. | Detecting facade damage on moderate damaged type from high-resolution oblique aerial images | |
Wan et al. | A performance comparison of feature detectors for planetary rover mapping and localization | |
Budianti et al. | Background blurring and removal for 3d modelling of cultural heritage objects | |
SANDOVAL et al. | Robust sphere detection in unorganized 3D point clouds using an efficient Hough voting scheme based on sliding voxels | |
Budge et al. | Automatic registration of fused lidar/digital imagery (texel images) for three-dimensional image creation | |
Partovi et al. | Automatic integration of laser scanning and photogrammetric point clouds: From acquisition to co-registration | |
Walicka et al. | An automatic method for the measurement of coarse particle movement in a mountain riverbed | |
WO2024119230A1 (en) | Photogrammetry surveying method and system | |
Yi et al. | Automatic detection of cross-shaped targets for laser scan registration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23899129 Country of ref document: EP Kind code of ref document: A1 |