Skip to content
EARLY-STAGE RESEARCH CONCEPT · SYNTHETIC DEMONSTRATIONS ONLY
QualiEdge AI

Technical concept

Architecture & specification

A modular monolith that runs on a Windows CPU, offline, next to the line. It writes nothing to the PLC in V1 and never auto-passes an image it cannot trust.

System context

From photon to audit trail

FACTORY NETWORK — NO PLC WRITES IN V1

  1. 01

    USB / industrial camera

    Fixed mount, controlled light

  2. 02

    Capture & quality check

    Exposure, focus, brightness band

  3. 03

    Registration / alignment

    Fixture fiducials, pose correction

  4. 04

    Recipe-based feature checks

    OpenCV baseline · later anomaly-detection research track

  5. 05

    Decision engine

    PASS / FAIL / REVIEW

  6. 06

    Evidence store

    Local images + SHA-256 hashes · SQLite → PostgreSQL

  7. 07

    Operator dashboard (React)

    Human review, append-only

  8. 08

    Reports / CSV

    Evaluation & audit exports

Flow reads left→right, top→bottom

Stack

Recommended stack

FrontendReact + TypeScript + Vite
BackendPython FastAPI, versioned under /api/v1
DatabaseSQLite (dev) → PostgreSQL
VisionOpenCV + NumPy; later PyTorch / anomaly methods (e.g. PatchCore-style) as research
RuntimeWindows, CPU-only, offline

Entity model

Product

id, name, customer_ref, active

ProductVersion / Recipe

id, product_id, version, checks[] (JSON), created_by, created_at

Image

id, source_type SYNTHETIC | LAB_PHOTO | CUSTOMER_AUTHORISED, sha256, provenance, captured_at

InspectionResult

immutable · image_id, recipe/model version, decision, evidence, timestamp

HumanReview

append-only · result_id, reviewer, decision, comment, timestamp

AuditEvent

actor, action, entity, payload hash, timestamp

Recipe

Versioned, human-readable checks

recipes/housing-A@1.2.0.json (excerpt)json
{
  "id": "housing-A",
  "version": "1.2.0",
  "product": "Synthetic plastic housing (demo)",
  "review_margin": 0.15,
  "checks": [
    {
      "id": "top_clip",
      "description": "Teal retaining clip seated in upper socket",
      "roi": {
        "x0": 184,
        "y0": 139,
        "x1": 306,
        "y1": 177
      },
      "hsv": {
        "hRanges": [
          [
            160,
            190
          ]
        ],
        "sMin": 0.27,
        "vMin": 0.24
      },
      "mode": "present",
      "threshold": 0.4
    },
    {
      "id": "lower_clip",
      "description": "Teal retaining clip seated in lower socket",
      "roi": {
        "x0": 184,
        "y0": 249,
        "x1": 306,
        "y1": 288
      },
      "hsv": {
        "hRanges": [
          [
            160,
            190
          ]
        ],
        "sMin": 0.27,
        "vMin": 0.24
      },
      "mode": "present",
      "threshold": 0.37
    }
  ]
}

API

Local REST endpoints

  • POST/api/v1/inspections
  • GET/api/v1/inspections/{id}
  • POST/api/v1/inspections/{id}/reviews
  • GET/POST/api/v1/products
  • GET/POST/api/v1/products/{id}/recipes
  • GET/api/v1/reports/evaluation
decision.pypython
def decide_inspection(capture_quality, registration, feature_checks, policy):
    if not capture_quality.ok or not registration.ok:
        return Decision.REVIEW, [class="s">'Image unsuitable for reliable inspection']
    if any(check.status == class="s">'FAIL' for check in feature_checks):
        return Decision.FAIL, failed_check_reasons(feature_checks)
    if any(check.status in (class="s">'UNKNOWN', class="s">'UNCERTAIN') for check in feature_checks):
        return Decision.REVIEW, uncertain_check_reasons(feature_checks)
    if not feature_checks:
        return Decision.REVIEW, [class="s">'No enabled checks in recipe']
    return Decision.PASS, [class="s">'All configured visible feature checks passed']

Engineering rules

Eight hard rules

  1. 1.Every event carries source type, recipe version, timestamp and evidence.
  2. 2.Out-of-focus, under/overexposed or unregistered images never auto-PASS.
  3. 3.Human review appends; it never overwrites a result.
  4. 4.Offline is mandatory; no cloud upload without explicit approval.
  5. 5.No accuracy, revenue or funding claims without evidence.
  6. 6.This is not a machine-safety certification.
  7. 7.Modular monolith — no premature microservices.
  8. 8.CPU-only; no GPU dependency.

Research questions & work packages

Compare

  • OpenCV recipe baseline
  • Anomaly detection (research track)
  • Recipe + human review workflow

Measure

  • Recall, false rejects, escaped defects
  • Review rate and cycle time
  • Variation across lighting and position
  • Changeover hours per new variant

Plan

Phased development

Security & privacy

Customer images stay put

  • GDPR

    Avoid capturing people; document any personal data processing.

  • IP of customer images

    Images belong to the customer; usage defined in a data-rights agreement.

  • Local storage

    Evidence stored on-premises with SHA-256 integrity hashes.

  • Retention / deletion

    Configurable retention with verifiable deletion.

  • Roles

    Operator, quality manager, administrator — least privilege.