We flew a mission in RTK. The drone reported centimeter-accurate positions the entire flight. Pix4D processed the data. We delivered an ortho and a surface model to the client. The vertical accuracy was off by six inches.
Six inches. On an RTK flight.
The mistake was trusting AutoGCP — Pix4D's automatic ground control point detection — instead of marking our GCPs by hand. The drone knew exactly where it was. Pix4D knew exactly where the photos were taken. But AutoGCP silently picked the wrong center on a control point somewhere in the bundle adjustment, and the resulting point cloud inherited a six-inch vertical offset. The ortho looked fine. The DSM did not. The engineer's cut/fill numbers were wrong. The PM caught it on the second pass. We re-flew on a Saturday.
That mission is why the Wet Dog Drones team now marks every GCP by hand. Here's what AutoGCP does, why it fails silently, and what we do instead.
What AutoGCP Actually Does
Pix4D's AutoGCP is an automated tie-point refinement feature. Given a set of approximate GCP coordinates from your GNSS rover, AutoGCP tries to identify which photos contain each control point and assigns precise pixel coordinates to the center of each target. The intent is to speed up processing — you skip clicking the center of every target in every photo.
AutoGCP doesn't miss the target entirely. It picks a center — and if you don't check the work, you'll never know it picked wrong. Every additional image feeds another chance for AutoGCP to thread a wrong center into the bundle. More images means more potential outliers compounding through the adjustment. More centers clicked means more paths for error to accumulate and propagate into the final point cloud. You don't get an alert. You get a confident, low-residual solution that's off by inches.
Pix4D's own documentation makes this clear: AutoGCP "automatically locates targets in images and detects their centers with pixel-level accuracy." It's not guessing from nothing — it's solving for the center position, and reporting back that it solved it. The processing report doesn't say "solved it wrong."
The Six-Inch Problem
Six inches of vertical error is invisible in an orthomosaic. The image looks sharp. The colors are right. The site reads correctly to a human eye. But the digital surface model — the elevation grid that drives cut/fill, volumetric, and contour work — is shifted by six inches. Multiply that across a stockpile volume calculation and you're looking at tens of cubic yards of error. Multiply it across an earthwork progress comparison and you're claiming cuts that didn't happen, or missing fills that did.
For visual progress documentation, an AutoGCP ortho is fine. For decision-grade data — the kind that settles disputes, justifies billing, or feeds an engineer's design surface — it isn't. And the failure mode is silent. The residuals look tight. The quality report gives you green checks. The only way you catch it is by cross-checking against independently surveyed checkpoints in a third-party tool like QGIS or ArcGIS.
What We Do Instead
Every GCP, every project, every time. Hand-marked in Pix4Dmatic. The workflow:
- Place 5 GCPs across a 10–17 acre site — 4 perimeter corners plus a center support point. The DMA group has converged on this density as an industry standard.
- Shoot each GCP with the GNSS receiver — RTK or PPK-corrected against a known base station position (typically established via OPUS).
- Process the flight in Pix4Dmatic — manual GCP marking. Click the center of each target in each photo that contains it. No AutoGCP.
- Export the processed GCP coordinates — pull the bundle-adjusted positions out of Pix4D and import them into QGIS.
- Cross-check against an independent reference layer — survey-grade data, a known-good orthophoto from a previous flight, or a check shot from a separate rover observation. If the GCPs sit where they should, ship the deliverable. If they don't, find the problem before the client does.
This adds time to every project. Maybe 30–60 minutes of clicking, depending on overlap and target count. It's the most expensive 30–60 minutes in the workflow, and the cheapest insurance you'll ever buy.
When AutoGCP Is Fine
AutoGCP has legitimate uses:
- Visual documentation — orthomosaics for progress photos, owner updates, marketing. If the deliverable is "show me what the site looks like today," AutoGCP is fast and good enough.
- Preliminary QC passes — run AutoGCP first to get a rough bundle, then re-process with manual GCPs for the final deliverable. Catches gross errors before you're committed to a full reprocess.
- Large-area mapping where centimeter accuracy isn't required — corridor mapping, environmental surveys, agricultural monitoring. If the tolerance is half a meter, AutoGCP's occasional mistakes don't matter.
For construction work — cut/fill, volumetrics, as-built surveys, change-order disputes — AutoGCP is the wrong tool. Manual marking is the cost of doing business at decision-grade accuracy.
Why Pix4D's Reports Don't Catch It
Pix4D's processing reports are confidence-building. The bundle adjustment residuals look tight. The camera self-calibration optimizes. AutoGCP contributes to those green checks — it's solving for the GCP positions in the bundle and reporting back that it solved them. The report doesn't say "solved them wrong."
The check has to be independent. Every deliverable, every time. We verify in QGIS against checkpoints we didn't use in the bundle adjustment. We verify the Checkpoints sit where they should before anything ships. If the verification fails, we re-fly. We have re-flown. We have lost Saturdays to it.
The Real Cost
A six-inch error on a single RTK flight costs more than the Saturday we spent re-flying. It costs client trust. It costs the right to call your deliverables decision-grade. It costs the engineer an afternoon figuring out why their cut/fill numbers don't match the surveyor's. It costs the GC if a change-order dispute lands and the documentation is off by inches.
We don't ship what we haven't independently verified. AutoGCP doesn't fit that rule. Hand-marking does.
Pro tip of the day: Turn off AutoGCP. Mark every GCP yourself. Verify every project in QGIS before the client sees a single pixel. The 30 minutes you spend clicking targets is the cheapest insurance on every project you fly.
Sources & further reading
- Automatic target detection - AutoGCP algorithm — Pix4D's own documentation on how AutoGCP works and its detection range
- A Guide to Using Ground Control Points for Surveying — heliguy (March 2025) — why GCPs anchor to real coordinates in ways manual tie points cannot
- Drone surveying: how it works and what accuracy to expect — Wingtra — GCP accuracy benchmarks (2–3 cm with GCPs vs. ±5 m without)