Skip to content

AI product · MLOps · Full-stack

AECAI: from inspection models to a working product

An AI-assisted structural inspection platform. Inspectors upload photos; crack, spalling and exposed-rebar models run in parallel; engineers review annotated findings and issue reports.

Context
AECAI Ltd (Belfast): co-founder & CTO
Period
Dec 2025 – present
My role
CTO: CV pipeline design, model evaluation, and the full web console (Next.js)
AECAI web app showing a grid of inspection photos, each tagged with a count of detected defects
Inspection view: each photo is analysed and tagged with detected defects. Identifiers blurred.
3
Production defect models
crack · spalling · exposed rebar
0.901
Rebar U-Net F1 (IoU 0.820)
1,500 validation patches · P 0.903 · R 0.899
58 → 19
Spurious regions removed
hardest test photo · rule validated on 23 images
2
Models run in parallel per photo
non-fatal: one failing never blocks the inspection

Chapter 01

The engineering challenge

Research models only become useful when they sit inside the inspector's workflow: capture, detection, engineer review, report.

Models trained on close-up benchmark photos behave differently on real uploads, which vary in scale, surface finish and lighting.

Chapter 02

Input data

Inspection photos

Uploaded per location and element by inspectors

Structured forms

Floors, elements and condition fields from the form builder

Model weights

Crack, spalling and exposed-rebar U-Nets on a model hub

AECAI dashboard with structures, inspections, reports and open defects
Operations dashboard.

Chapter 03

The AI & engineering workflow

Stage 1 of 5

Capture

Inspector creates an inspection and uploads photos per location

What I did

  • Built the entire web console (`apps/console`, Next.js): dashboards, structures and assets, inspection forms with a form builder, photo review and reports.
  • Designed the spalling and exposed-rebar pipeline: 224 px patches at 50% overlap, Gaussian-weighted stitching, flip test-time augmentation, thresholding and morphological clean-up.
  • Dispatched crack and spalling detection in parallel from the app to serverless GPU workers. Each finding is stored with geometry and confidence for engineer review.
  • Audited model quality myself. The rebar model looked broken on user photos, but I traced the cause to a training-metric artefact and a scale gap, not the weights.
Next.jsTypeScriptSupabase (Postgres, edge functions, storage)RunPod serverless GPUHugging Face HubPyTorchsegmentation-models-pytorchOpenCVVercel

Production architecture

One photo, two GPU workers, one engineer's decision.

  1. 01 · App

    Inspection consoleNext.js · VercelInspector uploads photos per location; one action dispatches both models in parallel● Built by me
  2. 02 · Orchestration

    Edge functionsSupabasecv-detect · cv-detect-spalling: submit jobs, poll, store results
  3. 03 · Inference

    Crack U-Net workerRunPod serverless GPUScales from zero; weights pulled from Hugging Face at cold start
    Spalling + rebar workerRunPod serverless GPU224 px patches, Gaussian stitching, flip TTA, post-processing● Built by me
  4. 04 · Data

    Runs, findings, imagesSupabase Postgres + StorageOne run per model; one finding per defect region, with geometry and confidence
  5. 05 · Decision

    Engineer review & reportConsoleFindings are checked by an engineer before a report is issued● Built by me
AECAI production pipeline. Highlighted parts are mine: the console, the parallel dispatch and the spalling-and-rebar pipeline. My co-founder owns the edge functions and database migrations. Every push to main redeploys the app (Vercel) and rebuilds the worker images (RunPod).

Chapter 04

Technical result

  • Delivered a working product loop: capture, AI detection, human review and reporting.
  • Replaced a hard-coded confidence with the mean predicted probability, and fixed stitching so probabilities are accumulated before thresholding.
  • Swept thresholds across 23 test images and 260 candidate regions. This produced a scale-invariant false-positive rule that removed speckle noise without losing any real spalling.
  • Diagnosed the remaining failures (peeling paint and whitewash) as a gap in the training data, not something to tune away. That points to the next data-collection priority.

Exposed-rebar U-Net on its validation split

Computed with pixel-aggregated metrics after I found that the notebook's per-image averaging had reported F1 = 0.14.

0.000.250.500.751.000.903Precision · Rebar U-Net (VGG-19): 0.903Precision0.899Recall · Rebar U-Net (VGG-19): 0.899Recall0.901F1 · Rebar U-Net (VGG-19): 0.901F10.820IoU · Rebar U-Net (VGG-19): 0.820IoU
View data table
CategoryRebar U-Net (VGG-19)
Precision0.903
Recall0.899
F10.901
IoU0.820

Source: AECAI model-evaluation log (v0.6, 2026-09-18)

Limitations, stated plainly

  • Spalling over-detection on painted brickwork is only partly mitigated. The fix is new negative training data, which is planned.
  • Edge functions, migrations and infrastructure secrets are owned by my co-founder. My ownership is the console and the CV pipeline design.
Fig. 01Asset view: condition change across inspections. Location blurred.
Fig. 02Structured inspection form by location and element. Identifiers blurred.
Fig. 03Form builder for custom inspection templates.
Fig. 04Run CV detection, or an optional multimodal AI scan, per photo set.

Chapter 05

Practical impact & relevance

  • Takes computer vision from notebook to production: serverless GPU inference, cold starts, schema design and an engineer-in-the-loop review step.
  • Shows disciplined evaluation. I disproved my own overfitted rule, and fixed a misleading metric before it drove a decision.
EvidenceWhere every figure on this page comes from

Each metric is taken from a primary record, not from a CV. Hover a metric to see its source. The underlying files are available for review at interview.

  • AECAI engineering knowledge base
  • AECAI model-evaluation log
  • AECAI product screenshots (identifiers blurred)

Commercial details, credentials and customer data are excluded. The screenshots come from the founders' own workspace, with addresses and coordinates blurred.

Next case study

CAD-to-BIM AI: structural drawing understanding