If a pressed sheet-metal part has to prove its own geometry, photogrammetry with coded markers and scale bars does it with an ordinary area-scan camera: matte targets on the part, two certified bars for absolute scale, and a few dozen overlapping photographs. Software then solves every camera position and every target coordinate at once, a process called bundle adjustment. This guide is written for process and quality engineers who measure formed parts offline — etched grids on blanks, castings, panels. It gives the layout rules, the overlap and station counts, a worked example that runs from part size to lens focal length and standoff, and the accuracy you can honestly promise: about 10 µm point repeatability on a 300 mm part with a 12 MP camera.
What coded markers and scale bars actually do
A coded target is a matte dot ringed with a bar-code pattern. The software finds every target in every frame, decodes its identity, and follows it across the whole set with no manual point matching. Uncoded plain dots do the same job wherever a code will not fit; they rely on geometry instead of the code to be matched.
A scale bar is a rigid bar, normally carbon fibre or alloy, with one target fixed at each end and a certified distance between the two. It is the only object in the scene with a length you know absolutely, so it is what turns a shape into a measurement.
The solver runs a bundle adjustment: it estimates all camera positions and orientations, the lens distortion, and every target coordinate together, while injecting the bar lengths as known distances. Convergent, multi-angle images let it self-calibrate the lens, so a prior camera calibration is not a prerequisite. The camera calibration for length measurement from image markers article works out the marker-to-length arithmetic in detail.
The kit: targets, scale bars and fixture
Targets: print them matte black on matte white stock, 1 to 2 mm centre dots with the code ring outside, and stick them to the part or the fixture. The rule that matters is pixels, not millimetres: the centre dot needs at least 5 pixels across and the full code 10 or more, or decoding turns flaky. At the worked example's 83 µm per pixel, a 1 mm dot spans about 12 pixels, comfortably inside the rule. On bare sheet, degrease first; oil kills both the adhesive and the contrast.
Scale bars: use two, at different orientations, each spanning a good fraction of the part. Their certified lengths are the scale input for the solver, so keep the certificate with the rig.
Material decides how much temperature moves them. Over a 500 mm bar, steel grows about 6 µm per °C, aluminium about 12 µm, and carbon fibre stays close to zero along its length.
Fixturing: seat the part on hard stops, a simple nesting fixture, so the targets keep the same physical relationship to the part in every capture. That is what lets two measurement states taken hours apart be compared at all.
Choosing the camera
Resolution is the one camera spec that sets measurement scale: pixels across the part decide micrometres per pixel, and doubling the pixel count halves them. Shutter type does not matter here — the part and the camera hold still during the exposure, so rolling and global shutters give the same frames. Mono sensors centroid marginally cleaner than colour; either works. Any USB3 or GigE model carries stills without breaking a sweat.
For a single-part bench rig, this is the baseline the worked example assumes:
- Sensor format
- 1/1.7"
- Interface
- USB3
- Resolution
- 12 MP
- Shutter
- Rolling
It prints 4000 × 3000 resolution over USB3 at 30 fps on a 1/1.7-inch rolling-shutter sensor. When the part outgrows one frame or you want a finer scale on the same field, these two step up:
- Sensor format
- 1"
- Lens mount
- C-mount
- Sensor format
- 1.1"
- Lens mount
- C-mount
The MV-CS200-10UM is a 20 MP camera on a 1-inch sensor; the MV-CH120-11UC pairs 12 MP with a global shutter on a 1.1-inch sensor. Compare the full range in the camera finder.
Capture geometry: rings, overlap and convergence
Two geometries cover the cases. For a long part photographed in strips, place stations so adjacent footprints overlap 60 to 80 percent along the track. For a part that fits one frame — most bench stampings — shoot convergent rings instead: two or three rings of 8 to 12 stations, stepping the camera higher and tilting 15 to 30 degrees off-axis between rings. A 12-station ring puts stations 30 degrees apart in azimuth. That layout gives every coded target six or more views; three is the working minimum, six is comfortable.
Move the camera, never the part, between stations: the part's position is the datum every frame shares. Keep both bars fully inside most frames, and re-check after each ring that nothing has been knocked.
A one-frame part lands at 20 to 40 stations in total — minutes of work on a bench, and the same set feeds both the shape solve and the camera self-calibration.
This is the same triangulation problem a stereo rig solves, from many views at once; the multi-camera marker triangulation and world coordinates article derives the 3D-point mathematics for the two-camera case.
Worked example: a 300 × 200 mm stamping at 83 µm per pixel
Inputs, and where each comes from. The part is a 300 × 200 mm formed panel, sized like the etched-grid blanks this workflow usually measures. The camera is the 12 MP, 4000 × 3000 USB3 model above, whose 1/1.7-inch optical format is about 7.4 mm wide. A 10 percent margin around the part sets the field to 330 mm wide. The lens is a 16 mm prime from the camera lenses range — focal length matters here, brand does not. The aperture is f/8, and target centroids resolve to 0.1 pixel, a conservative planning figure for printed targets.
The scale follows from the pixel count; magnification and standoff from the sensor and field widths:
Arithmetic:
- Image scale: s = 330 mm / 4000 px = 0.0825 mm per pixel, about 83 µm.
- Magnification: m = 7.4 mm / 330 mm = 0.0224.
- Standoff: WD = 16 mm × (1 + 0.0224) / 0.0224 = 16 mm × 45.59 ≈ 729 mm, call it 0.73 m.
- Depth of field at f/8: hyperfocal distance H = f² / (N × c) + f = 256 mm² / (8 × 0.0825 mm) + 16 mm ≈ 404 mm. Focused at 729 mm, the near sharp limit is H × u / (H + u − f) = 404 × 729 / (404 + 729 − 16) ≈ 264 mm, and the far limit falls past infinity. Everything from about 0.26 m outward sits inside one pixel of focus, so a convergent ring's tilts never leave the depth of field.
- Accuracy: one frame locates a centroid to 0.1 px × 82.5 µm ≈ 8 µm. The bundle averages 20 to 40 such views, so plan on roughly 10 µm point repeatability, about 0.003 percent of the 300 mm part size.
Decision: a 16 mm lens at 0.73 m standoff, stopped to f/8, two rings of 12 stations and two carbon-fibre bars measure a 300 mm panel at 83 µm per pixel and about 10 µm per coded target. To go finer, a 20 MP sensor puts roughly 5500 pixels across the same field: scale about 60 µm per pixel, repeatability nearer 7 µm.
Exposure, focus and light on a shiny stamping
A pressed part holds still, so exposure is free until you stream: at a 30 fps preview the frame period is about 33 ms and caps the live-view exposure. For captured stills, tens of milliseconds at f/8 are fine in ordinary shop light. When the image runs dark, add light rather than gain — gain noise spreads the centroids you are trying to measure.
Shiny sheet is the real enemy, not darkness. Matte targets shrug off most glare; on polished panels, cross-polarise: polarising film on the lens, rotated 90 degrees against film on the lights, drops the metal's specular reflection while the printed targets stay black. Light evenly from two bar lights at roughly 45 degrees — even light keeps target centroids symmetric.
Exposure time also interacts with pulsed LED drivers: certain windows band the frame with dark bars, and the black bars in some camera images: fix lighting flicker vs exposure article isolates that fault. On a fixed bench stand hand shake disappears; handheld, keep the shutter short enough to freeze yourself instead.
Focus once at the ring's mid standoff and re-check after each ring change. At the worked example's geometry the entire scene sits far inside the depth of field, so per-station refocusing is optional:
The two-state workflow: blank and pressed part
Deformation measurement is two photogrammetric solves sharing the same coded targets. Etch or laminate the coded targets and the measurement grid onto the blank before forming; the die then deforms part, grid and targets together. Capture state one on the fixture, press, capture state two. Each target's code carries its identity across both states, so the software matches blank to pressed part automatically — the correspondence work is already done.
Each state gets its own scale: the bars stand in the fixture for both captures, and the solver fixes each surface to the certified lengths separately. The two surfaces then register on the grid nodes or the regions the die did not touch, and strain follows from the node displacement gradients.
Two rules keep the comparison honest. Keep the fixture's hard stops identical for both captures, because a shifted datum reads as strain at the edges. And capture the pressed state after it cools to the temperature of the first capture, or the thermal contraction lands in your strain map.
Software: what to insist on, and the license question
Insist on four capabilities: the solver decodes your target code, accepts calibrated bar lengths as known distances, self-calibrates lens and distortion from the convergent set, and exports 3D coordinates keyed by target ID. For strain work, add grid-node matching between states. Any solver with those four measures the images; which camera took them is irrelevant to it.
If the suite already on your bench keeps its photogrammetric point cloud behind a paid add-on, that is an administrative fork, not a technical one. License the module through the vendor or its distributor, take their trial, or point the same image set at a solver that reads your code system. Targets, bars and convergent frames are a vendor-neutral method; the images you shoot are the asset either way, and no capture choice in this guide ties you to one package.
Judge any solver by its report: reprojection error at or below about 0.2 pixel RMS, bar-length residuals inside the certificate, and a known dimension — a gauge block laid on the part — recovering within your budget. If those three lines pass, the network is sound.
When marker photogrammetry is the wrong tool
Marker photogrammetry measures targets and grid nodes offline, at a tens-of-frames cadence. Three cases want a different tool.
Inline, every part, milliseconds: a 3D laser profiler sweeps a light line across each part and returns a profile per scan. The surface defect detection with a 3D laser line profiler article shows that cadence, and the 3D sensors category lists the profiler lines.
Dense surface shape on a part you cannot touch: a structured-light camera projects its own pattern and needs no markers at all:
- Type
- Stereo / structured light
The MV-DPS200P-02 is a projected structured-light 3D camera; it solves shape in one shot, markers not required.
Mirror-finish bare sheet defeats both methods' light: matte-coat it, or measure the fixture and known offsets instead of the shine.
Bench checklist before the first measurement
Run down this list once and the first solve usually lands on the first try.
- Targets: 1 to 2 mm centre dots, matte stock, degreased surface, at least 5 pixels across in the image — at 83 µm per pixel a 1 mm dot gives 12 pixels.
- Bars: two, crossed orientations, carbon fibre unless temperature is logged and stable, certified lengths written down rather than remembered.
- Geometry: two rings of 12 stations 30 degrees apart in azimuth, part on hard stops, every coded target visible in six or more frames.
- Optics: 16 mm at 0.73 m for a 300 mm part — rescale with the formulas above for yours — f/8, corners sharp on a test frame.
- Light: even coverage from 45-degree bar lights, cross-polarised on shiny sheet, exposure below the frame period while streaming.
- Acceptance: 0.2 pixel RMS reprojection or better, bar residuals inside certificate, gauge block recovered.
Where to start
Size the optics for your largest part with the worked example's formulas, pick the camera from the two categories above, and shoot one test panel end to end before you commit a fixture design. The camera configurator steps through sensor, resolution and mount in one pass, and the 3D vision topic page collects the rest of the measurement articles. If you send your part size and accuracy target through the contact page, we will spec the complete kit with you.
Questions
How many coded targets does a photogrammetry network need?
Six well-spread coded targets is the practical floor: with fewer, one mis-decoded point can disconnect part of the network. On a 300 mm stamping, 10 to 15 targets around the flange plus two near the centre is a good layout, and put one uncoded target at each scale-bar end so the solver ties bar to part without extra work.
Does the camera need a global shutter for photogrammetry?
No. Motion during the exposure is the only thing a rolling shutter punishes, and nothing moves in this workflow: the part sits on the fixture and the camera sits on the stand. Buy resolution, not shutter type, unless the rig will later photograph parts on a moving line or from a robot arm.
How accurate is marker photogrammetry with scale bars?
Separate the two error kinds. Point-to-point shape and deformation stay at the image level, roughly 10 µm on the worked example's 300 mm panel. Absolute dimensions also inherit the bar's certificate: a bar good to 0.01 percent adds 30 µm over a 300 mm bar. Strain work mostly needs the first kind, which is why a mid-grade bar is often enough.
Why two scale bars instead of one?
One bar sets the length but gives the network no redundancy: if the bar is read wrong, bent, or its certificate mistyped, the whole model scales off by the same error with nothing to catch it. Two bars at crossed orientations cross-check each other, and their residuals in the solver report are the cheapest sanity check you get.
Do markers and grids survive the forming press?
Etch or laminate them onto the blank before forming, so they deform with the part instead of tearing off at the die radius. Etched codes survive deep draws; stickers survive shallow forms. If the die wipes out the grid over one region, leave coded targets in areas that stay flat so the two states still register.



