AT 309 Week 14: Pix4D Part 3

Introduction

The last lab involved processing four datasets through Pix4Dmapper. The last lab for the semester continues with image processing, but this time we are processing three of those datasets again. The difference is that these datasets are going to be processed with ground control points. GCPs are important for providing accurate geolocation data in geospatial projects.

Steps and Requirements for Processing GCPs

There are multiple ways that GCPs can be processed in Pix4Dmapper, depending on the case.

How to Insert GCPs into Projects

Method A

For this lab, method A was used to add GCPs to the projects.

1. Obtain GCPs measurements in the field or through other sources.

2. Add / Import the GCPs with the GCP/MTP Manager without marking them

3. On the Menu bar, click View > Processing. The Processing bar appears at the bottom of the Main Window.

4. Select 1. Initial Processing and deselect 2. Point Cloud and Mesh and 3. DSM, Orthomosaic and Index

5. Click Start.

6. Once Initial Processing is completed, mark the GCPs with the rayCloud.

7. Click Process > Reoptimize.

8. (optional) Regenerate the Quality Report by clicking Process > Generate Quality Report.

These are the steps for processing GCPs in method A.

One thing to note is that the processing is done in two parts. First, users add the GCPs and do initial processing. Once initial processing is complete, GCPs are marked in rayCloud. After GCPs are marked, the project needs to be reoptimized before 2) Point Cloud and Mesh and 3) DSM, Orthomosaic, and Index processing can start.

GCP Requirements

Pix4D requires a minimum of three GCPs per project, but recommends five to ten GCPs. 

Each GCP needs to appear in at least two images.

Additionally, GCPs need to be placed evenly along the landscape and away from the edge of a project. GCPs placed on the edge will not be visible in many images.

The only dataset, from the last lab, that was not processed here is the XT2 Thermal imagery.

Analyzing the GCP Data

Before opening the project in Pix4Dmapper, the GCP data was analyzed.

Point number

X variance

Y variance

Z variance

1

1.8

0.5

1.4

2

0.4

0.3

1.1

3

1.1

0.3

0.7

4

0.7

1.2

1.8

5

0.9

0.8

2.5

6

22.3

10.7

14.1

There were two GCP files. The table above was created from data in the first file. Analyzing this table revealed that GCP 6 has more variance than any of the other points. This could lead to inaccuracies in the data. When processing starts later, GCP 6 will be removed. 

There was also coordinate system information in this file. The Geographic Coordinate System is NAD83 (2011). The projected coordinate system is NAD83 (2011) / UTM Zone 16N. The ESPG code and Geoid model are 6319 and Geoid 12b.

The other file had the same file name as the first, but "simple" was attached to the end.

Point Number

Northing (m)

Easting (m)

Orthometric Height (m)

1

4477345.537

495456.779

207.807

2

4477359.994

495524.189

207.959

3

4477306.233

495533.993

207.091

4

4477263.912

495497.022

206.041

5

4477232.496

495444.918

205.558

6

4477290.755

495426.667

207.932

The simple file was the one used for adding GCP data in this lab. The table above is the XYZ data for that file.

Mavic 2 Pro

The GCP data was added through the "Import GCPs..." option in the GCP/MTP Manager. Default coordinate systems were changed to the coordinates the GCPs were in. Initial processing began.

Marking GCP 1 in rayCloud (Mavic 2 Pro)

After the five GCPs were marked, the project was reoptimized. Additionally, GCP 6 was added briefly for analysis. Before GCPs are marked, GCP images will show users the general location where the GCP should be. This is marked by a blue circle. GCP 6 was unable to be located in any of the images so it may have been placed along the edge of the project. GCP 6 was then removed and the remaining processing was completed.

Final Map with GCPs Marked (Mavic 2 Pro)

The green circles are the GCPs. When trying to locate GCP 6, I thought I might have mistaken GCP 6 for GCP 1. I changed the marks for these GCPs and ran the processing again. Looking at the top right area of the image, there is a blue circle with a green line. This shows that GCP 6 is marked in the wrong location which helped me conclude that GCP 6 is not visible.

GCP Name

Accuracy XY/Z [m]

Error X [m]

Error Y [m]

Error Z [m]

Projection Error [pixel]

Verified/Marked

1 (3D)

0.020/ 0.020

0.006

-0.002

0.012

0.962

4/4

2 (3D)

0.020/ 0.020

-0.016

0.016

-0.040

0.681

4/4

3 (3D)

0.020/ 0.020

0.010

-0.010

0.036

1.237

4/4

4 (3D)

0.020/ 0.020

-0.011

0.024

-0.016

0.552

4/4

5 (3D)

0.020/ 0.020

-0.000

-0.013

-0.000

0.817

4/4

Mean [m]

 

-0.002001

0.003084

-0.001703

 

 

Sigma [m]

 

0.009787

0.014365

0.025776

 

 

RMS Error [m]

 

0.009989

0.014692

0.025832

 

 


The table above was taken from the quality report for the Mavic 2 Pro project. This table shows that the GCPs were added and marked. It also provides details about the accuracy of the GCPs.

XT2 RGB

Set up for the XT2 RGB project was the same as it was for the Mavic 2 Pro. 

Marking GCP 3 in rayCloud (XT2 RGB)

This dataset only had 15 images so there were less images to choose from in GCP marking. 

After initial processing and marking the GCPs, there was a problem with the GCP data. 

Quality Report Georeferencing Issue (bottom row)

The georeferencing row tells users if GCP data was used. It also describes any accuracy problems. The issue here was that the RMS error was around 4 meter.

RMS Error

The blue circle mentioned earlier came into play here. Looking at the rayCloud, I noticed that some of the GCP marks (green circle) far away from their respective blue circles.

GCP Mark Matching

This is about how close the two points should be to each other. Replacing the marks reduced the RMS error to a point where the 2) and 3) processing could be completed.

Final Map with GCPs Marked (XT2 RGB)

GCP Name

Accuracy XY/Z [m]

Error X [m]

Error Y [m]

Error Z [m]

Projection Error [pixel]

Verified/Marked

1 (3D)

0.020/ 0.020

-0.035

0.013

-0.049

0.548

4 / 4

2 (3D) 

0.020/ 0.020

-0.015

-0.034

0.049

0.878

3 / 3

3 (3D)

0.020/ 0.020

0.010

-0.025

0.049

0.656

4 / 4

4 (3D)

0.020/ 0.020

0.020

0.028

0.058

0.742

4 / 4

5 (3D)

0.020/ 0.020

-0.011

0.003

-0.032

0.750

4 / 4

Mean [m]

 

-0.006244

-0.002611

0.015214

 

 

Sigma [m]

 

0.019583

0.023234

0.045722

 

 

RMS Error [m]

 

0.020555

0.023380

0.048186

 

 


This table shows that the RMS error was brought down from an average or 4 meter to under 0.5 meters.

A6000

Looking back at the last lab, the A6000 imagery did not have geolocation data. This had to be added again with the same CSV file.

Marking GCP 5 in rayCloud (A6000)

After initial processing and GCP marking were done, the quality report was generated to see if there were any issues. The RMS error came up again, but this time the RMS error was 1.8 meters. When placing the GCP marks for this project, I did not make sure the marks were accurately place. This led to the RMS error.

Accurately Marking the GCPs (A6000)

As the GCPs were marked again, the RMS error gradually went down. This shows the importance of accurate GCP marks. If the marks are not close enough to each other, the GCPs cannot be used in processing. Zooming in as much as possible made it easier to put the marks square in the middle of the GCPs. 

Final Map with GCPs Marked (A6000)

GCP Name

Accuracy XY/Z [m]

Error X [m]

Error Y [m]

Error Z [m]

Projection Error [pixel]

Verified/Marked

1 (3D)

0.020/ 0.020

-0.003

-0.006

0.065

0.309

4 / 4

2 (3D)

0.020/ 0.020

0.017

0.016

-0.066

0.094

4 / 4

3 (3D)

0.020/ 0.020

0.010

-0.007

-0.051

0.299

4 / 4

4 (3D)

0.020/ 0.020

-0.009

-0.001

-0.002

0.272

4 / 4

5 (3D)

0.020/ 0.020

0.018

0.037

0.223

0.234

4 / 4

Mean [m]

 

0.006654

0.007866

0.033874

 

 

Sigma [m]

 

0.010623

0.016672

0.105284

 

 

RMS Error [m]

 

0.012534

0.018434

0.110599

 

 


The RMS error was brought down from 1.8 meters to 0.44 meters before the issue was resolved.

Conclusion

GCPs are an important part of accurate geospatial data. Through the remainder of my UAS Purdue classes, we will process a lot of data through Pix4Dmapper. This lab and the other Pix4D labs served as a look into future data processing projects. Now that we know how to correctly perform image processing, we are ready to continue in data collection and analysis.





















Comments

Popular Posts