← LineStriper AI case study

Technical companion

HowAuto CountWorks

The model proposes. The estimator decides.

Auto Count converts calibrated aerial imagery into editable parking-lot quantities. This page explains how resolution, labels, specialist models, deterministic geometry, and human review work together.

LineStriper AI Auto Count review with stall-center proposals over an aerial parking lot

Human review boundary

Proposed markings remain visible and editable before they can become labor, materials, margin, or a customer price.

Precision
96.3%

Matched predictions among retained stall centers

Recall
97.5%

Reviewed physical stalls matched by a prediction

F1
96.9%

Balanced precision and recall on the golden partition

01 / System contract

A priceable answer, not a picture

Every marking family maps to a billable unit, so uncertainty must remain visible all the way to review.

Stall lines, symbols, crosswalks, hatching, and linear markings become counts, feet, or square feet. A mistaken detection is not merely a visual defect once it affects a signed quote.

The useful system is therefore larger than the neural network. Resolution checks, label rules, physical constraints, rejected-item reasons, and a human acceptance step define the actual product contract.

  1. Stage 01

    Image + AOI

    A calibrated aerial image and the user-defined work boundary establish the task.

  2. Stage 02

    Resolution check

    Scale and ground resolution determine whether the input is suitable for automatic analysis.

  3. Stage 03

    Specialist models

    Separate heads propose stall centers, paint, symbols, hatching, spans, lines, and context.

  4. Stage 04

    Deterministic rules

    Physical conflicts, barriers, thresholds, and row geometry constrain the proposals.

One request becomes a reviewable takeoff. Items removed by deterministic rules keep their rejection reasons instead of disappearing silently.

02 / Resolution

Scale stays explicit

Training preserves native detail while serving standardizes the live task and refuses imagery that cannot support a trustworthy striping count.

Training keeps native pixels across the 1.4 to 10 cm per pixel range. Resolution-balanced sampling and an optional ground-sample-distance channel give the model scale context without flattening every image to one size.

Live inference targets 10 cm per pixel. If the available image is coarser than 20 cm per pixel, the service returns an explicit too-coarse result instead of manufacturing a count.

A fixed 10 cm training resample was tested and rejected because it reduced validation and golden performance. The failed experiment remains reproducible but cannot promote a model.

1.4 cm/px

Finest preserved training scale

7.5 cm/px

A common native-resolution band

10 cm/px

Live inference target

>20 cm/px

Automatic striping analysis stops

Property-level evaluation partitions

Training 52%Validation 25%Golden 23%
Resolution is both an input property and an evaluation slice. The dataset partitions are assigned by property, not by tile.

03 / Label governance

The labels have rules

A purpose-built review tool supports point, line, polygon, and span geometry while keeping machine assistance subordinate to human approval.

  1. 01

    Area of interest first

    Only geometry inside the reviewed project boundary becomes a training target.

  2. 02

    Visible paint stays literal

    Paint labels describe what is visible. Hidden physical stalls use a separate inferred channel.

  3. 03

    Assistance cannot approve

    Model seeds and segmentation helpers may create drafts, but they cannot assign final truth or overwrite approved work.

  4. 04

    Snapshots stay reproducible

    Every retrain freezes the approved reviews with hashes so a model can be traced to the exact labels it saw.

04 / Model choice

Why segmentation won

The final architecture emerged from rejected shortcuts, not from a preference for one model family.

  1. 01

    Bounding boxes

    Rejected because long, thin billable markings do not fit box geometry without losing their useful shape.

  2. 02

    General vision models

    Open-set detection recognized foreground objects more readily than parking stalls, while general segmentation fragmented the pavement.

  3. 03

    Gaussian heatmaps

    The shipped stall model treats center-point detection as two-channel segmentation for visible and occluded or inferred stalls.

Shipped stall target

A two-channel Gaussian center-point heatmap U-Net predicts complete physical stall centers. Visible stalls and occluded or inferred stalls remain separate so their performance cannot hide inside one combined score.

05 / Architecture

Specialists, then rules

A committee of geometry-specific models proposes evidence. Deterministic code owns blending, conflicts, thresholds, and the final output contract.

  1. 01

    Specialist committee

    Separate ResNet-34 U-Nets handle distinct geometry families instead of forcing one model to explain every marking.

  2. 02

    Overlapping tiles

    Full images run through 512 px tiles at a 384 px stride so edge predictions receive neighboring context.

  3. 03

    Weighted blending

    A Hann window blends overlaps before probabilities are normalized across the full work area.

  4. 04

    Resolution awareness

    Resolution-balanced sampling and an optional GSD channel keep scale explicit without discarding native detail.

  5. 05

    Numerical guardrail

    The focal-loss branch stays in float32 because reduced precision can round near-one values into invalid logarithms.

  6. 06

    Rule-owned fusion

    Geometry and business rules assemble model outputs, record rejection reasons, and preserve raw coordinates for audit.

512 px tiles · 384 px stride · 25% overlapHann weighting blends tile edges before normalization
Overlapping inference tiles reduce edge artifacts. The weighted result is normalized across the full image before geometry rules run.

06 / Row-aware geometry

Recover, snap, never invent

Occlusion recovery and row alignment are useful only when the interface makes their authority clear.

The model has a dedicated occluded or inferred output channel. It can recognize a hidden physical stall from row context, but that channel remains materially weaker than visible-stall detection.

Shipped row alignment may move detections onto a fitted axis, but it preserves the count and keeps the raw coordinates. A test enforces that contract.

A separate module may propose one bounded gap inside a reliable row. The proposal stays orange, review-only, and excluded from customer-visible counts until an estimator accepts it.

SHIPPED: ALIGNMENT PRESERVES THE COUNTraw position ○ → aligned position ●REVIEW ONLY: A BOUNDED GAP PROPOSALvehicleorange = review only and never included automatically
Blue geometry may ship when it preserves the detected count. Orange geometry remains a suggestion to apply or discard.

07 / Evaluation

Measure the task, not accuracy

The published metrics apply to reviewed physical stall centers. They do not stand in for every marking family in the product.

  1. 01

    Split by property

    A property belongs to one partition, so tiles from the same site cannot leak between training and evaluation.

  2. 02

    Freeze the referee

    The golden labels are copied and hashed before candidate and incumbent models are scored.

  3. 03

    Tune on validation

    Threshold tuning is restricted to the validation partition. The golden partition remains a release check.

  4. 04

    Match physical stalls

    Predicted and reviewed stall centers are paired one to one within a 16 px radius, then precision, recall, and F1 are reported.

Visible stall recall

99.4%

Occluded / inferred recall

79.3%

The separation is deliberate. A strong visible result cannot conceal a weaker inferred channel, and row completion remains review-only because of that gap.

Download sanitized evidence JSON ↓

08 / Improvement areas

Three areas being improved

These are active engineering and evaluation priorities, not hidden exceptions to the headline metrics.

Area 01

Improve inferred occlusion

Visible-stall recall is 99.4%, while occluded or inferred recall is 79.3%. Row gaps remain review-only while the weaker channel is improved and re-evaluated.

Area 02

Expand resolution specialists

Very fine and coarse imagery stress the model differently. A coarse-imagery specialist did not clear its safety gates, so automatic resolution routing remains off until a candidate improves the property-level slices without regression.

Area 03

Gate evaluation completeness

An incomplete golden review with zero finished stall labels created a 23-false-positive spike against empty truth. A pre-scoring completeness check is the needed process improvement.

09 / Deployment

Shipping is a manifest decision

Training a checkpoint is not the same as putting it in front of a contractor.

A schema-validated active-model manifest pins checkpoint hashes, thresholds, disabled classes, and the decision note for every specialist. Candidate models can be previewed in the review tool without touching the live manifest.

Promotion gates leave the incumbent live when a candidate fails. Rollback selects a known manifest, while the app-side workflow owns retries, review state, and the final acceptance boundary.

LineStriper AI counting mode with reviewed stall lines, symbols, and aisles
The model output feeds the same editable counting workspace used for manual takeoff, pricing, and quote preparation.

Continue with the product

LineStriper AI

See how Auto Count fits into the full workflow from aerial takeoff to company pricing and an e-signed quote.

Read the case study →