> vision · llm · edge · deploy

Riccardo Gasparini

Freelance AI engineer. I put vision models and LLMs inside products and factories, from prototype to deployment.

02

Work

Fifteen projects, no names: what matters is the problem and how I solved it. Manufacturing, agritech, retail, fitness, railways, research.

LLMs, agents and RAG

Industrial group · 2026

Multi-company RAG platform over internal documents

Problem
Thousands of technical documents and procedures scattered across the group's companies, impossible to query, and no data allowed to leave the company.
What I did
Ingestion with Docling and semantic chunking, triple indexing (chunks, generated questions, summaries), hybrid dense and sparse search with cross-encoder reranking and visual page retrieval with ColPali. Fully local LLM stack on vLLM, streaming answers with per-company permissions, continuous evaluation with RAGAS, Kubernetes deployment.
  • Docling
  • Qdrant
  • BGE-M3
  • ColPali
  • vLLM
  • RAGAS
  • FastAPI
  • Helm

Laboratory diagnostics · 2026

Structured extraction from lab reports

Problem
Parameters like sodium and potassium, with values and units, locked in PDF and scanned reports with labels that vary every time, to be extracted without making anything up.
What I did
A three-agent LangGraph graph: one normalizes the requested terms, one searches the text for the parameters with exact or fuzzy matching, one validates and corrects the final JSON with found and not-found lists. Pydantic output, streaming, per-user document archive, self-hosted models, multi-tenant on Kubernetes.
  • LangGraph
  • Pydantic
  • Docling
  • vLLM
  • FastAPI
  • Kubernetes

Institutional catering · 2026

Conversational assistant over a legacy recipe database

Problem
An IBM DB2 database of recipes and ingredients that only SQL writers could query, with staff asking questions in natural language.
What I did
Three LangGraph agents: the first classifies intent, the second generates safe DB2 queries (dynamic WHERE clauses, case-insensitive search, joins optimized for version 9.7), the third filters and aggregates with pandas. Expiring sessions, KPIs, CSV export, an open model on self-hosted vLLM, Keycloak authentication, Helm and CI.
  • LangGraph
  • IBM DB2
  • vLLM
  • Keycloak
  • FastAPI
  • Helm

Industrial computer vision and video

Manufacturing · EU H2020 project · 2022-2023

Shop-floor safety with computer vision

Problem
Detect falls, entries into restricted areas and distances between workers from the existing cameras, without exposing people's identity.
What I did
On the edge: segmentation, pose estimation, tracking, a fall classifier, in-frame anonymization and homography onto the floor plan. In the cloud: an event-driven FastAPI microservice that turns FIWARE events into three safety rules, a Streamlit dashboard for the safety manager, GitOps deployment on the project cluster with ArgoCD and Istio.
  • PyTorch
  • YOLACT
  • FIWARE / NGSI-LD
  • FastAPI
  • Streamlit
  • ArgoCD / Istio

Fitness equipment · R&D · 2022-2024

Automatic video anonymization for privacy

Problem
Hours of footage of people using gym equipment, to be reliably anonymized before archiving it or using it to train models.
What I did
A service in production for sixteen months that watches a folder and processes every new video with an ensemble of four models (two face and head detectors, one of them custom-trained, two pose estimators), fuses the results and blurs the regions, re-encodes with ffmpeg preserving audio, with a monitoring dashboard. A second real-time pipeline from RTSP with hourly file rotation and multi-GPU Docker deployment.
  • PyTorch
  • YOLOv7
  • Keypoint R-CNN
  • OpenCV
  • ffmpeg
  • RTSP
  • Docker

Retail and workplace spaces · 2018-2024

Multi-camera people tracking mapped onto a floor plan

Problem
Following people across multiple cameras in shops and workplaces, merging the tracks into a single trajectory on the floor plan and estimating aggregate data, without dedicated infrastructure.
What I did
A per-camera RTSP pipeline with a detector and DeepSORT, calibrated homographies onto the 2D plane, cross-camera track fusion by coordinates and appearance, re-identification with learned embeddings. Multiprocess architecture (acquisition, detection, tracking). A four-camera Basler acquisition rig PTP-synchronized under 15 ms with UWB positioning; integration of FLIR and Allied Vision cameras with hardware triggers.
  • DeepSORT
  • YOLOv3 / CenterNet
  • OpenCV
  • RTSP
  • Basler / FLIR / Allied
  • PTP
  • UWB

Fitness · digital coaching · 2023

Exercise recognition and rep counting from 3D poses

Problem
From a 3D pose sequence captured during an exercise, identify which exercise it is and count the repetitions, exposing joint angles for form analysis.
What I did
A transformer over 32-frame windows with multi-task heads: exercise classification, a heatmap for rep peaks with counting via peak detection, regression of twelve joint angles (elbow, shoulder, hip, knee) from a 23-joint skeleton. Five architectures compared, a separate geometry library, an annotation tool for repetitions.
  • PyTorch
  • Transformer
  • Fit3D
  • SciPy
  • Biomechanics

Railway infrastructure · research · 2019-2020

Railway inspection with unsupervised anomaly detection

Problem
Finding defects on wheels and components from thermal and RGB images when defect examples are rare and unpredictable.
What I did
A convolutional autoencoder trained only on normal images, a composite SSIM, perceptual and gradient loss, full-image and crop variants, threshold sweeps and clustering of reconstruction errors, optimization for embedded hardware. A twelve-class annotation tool and dataset pipeline. Published at ICPR 2020 and AI4RAILS 2020.
  • PyTorch
  • Autoencoder
  • SSIM
  • Thermal
  • PyQt5
  • ICPR 2020

Industrial components · edge · 2021-2022

Anomaly detection on components and edge models

Problem
Inspecting mass-produced components and running the models on small hardware, from an industrial CPU down to a microcontroller.
What I did
An autoencoder with a selectable backbone and SSIM loss for visual inspection, with post-training INT8 quantization. A lightweight detector exported to TFLite with parity checks between the float and quantized model. A benchmark of 33 quantized models on an ultra-low-power RISC-V microcontroller, with cycles and MACs per cycle measured.
  • PyTorch
  • TFLite
  • Quantization
  • MobileNet
  • GAP8
  • Edge

Large-scale retail and urban mobility · 2021-2023

Counting and flows from video: retail checkouts and traffic

Problem
Counting items on a checkout belt in real time and estimating vehicle and pedestrian flows from GoPro footage, without cloud infrastructure.
What I did
For checkouts: an RTSP pipeline with classical vision (background subtraction, morphology), events with temporal voting, homography calibration and a precision, recall and F1 evaluation harness across many videos, targeting 60 fps. For traffic: a desktop application with YOLOX and SORT, line-crossing counting, vehicle reclassification with k-means, an installer for the end user.
  • OpenCV
  • YOLOX
  • SORT
  • RTSP
  • DearPyGui
  • k-means

Data and forecasting

Precision agriculture · 2025-2026

Irrigation recommendation and soil forecasting

Problem
Field sensors, weather forecasts and crop phenology to turn into a daily decision: how much to irrigate and fertilize, and when.
What I did
An agronomic engine with soil hydrology, N-P-K chemistry, BBCH phenological stages and evapotranspiration, on MariaDB and InfluxDB with Keycloak authentication. Multi-target soil state forecasting with Random Forest and over one hundred features (average SMAPE 4.7% across five targets). A Temporal Fusion Transformer evaluated with Optuna and ONNX export, then dropped: the classical model performed better.
  • scikit-learn
  • Random Forest
  • TFT
  • ONNX
  • InfluxDB
  • FastAPI
  • Keycloak

Precision agriculture · 2026

Prescription zones from Sentinel-2 imagery

Problem
An agronomist draws a field boundary and wants vigor maps and variable-rate zones without GIS or satellite expertise.
What I did
A service that downloads Sentinel-2 imagery from Copernicus for a polygon and date range, computes NDVI with cloud masking, groups it into vigor zones with K-Means and exports GeoJSON, Shapefile and ISO-XML for machinery, plus georeferenced overlays. A React frontend with Leaflet to draw boundaries and pick scenes, a mock mode with no credentials, 141 tests.
  • rasterio
  • Sentinel-2
  • NDVI
  • K-Means
  • React / Leaflet
  • FastAPI

Products and platforms

Innovation center · manufacturing SMEs · 2025-2026

Digital Maturity Assessment for SMEs

Problem
Assessing the digital maturity of an SME in a repeatable way and delivering a report, in place of spreadsheets and interviews.
What I did
A questionnaire defined in YAML (six dimensions, 86 items), a scoring engine with maturity bands and an Industry 4.0 level, a PDF report with radar and scale charts, email delivery, CSV and XLSX export hardened against formula injection, authentication and account deletion, migrations, 45 tests, Docker deployment.
  • FastAPI
  • SQLAlchemy
  • WeasyPrint
  • Scoring engine
  • Docker

Own product · fintech · 2025-2026

Pullback Radar, multi-user investment monitoring

Problem
Retail investors miss short pullback windows across dozens of stocks because they cannot watch the market all day.
What I did
A SaaS with Google login, scanning every twenty minutes during market hours, a 0-130 technical score shared between the live monitor and a walk-forward backtester, email alerts with a cooldown, ATR-based stop-loss and take-profit, a portfolio with a DCA simulator, weekly weight optimization with manual approval. Docker on a VPS with CI/CD, nginx with HSTS, daily backups, GDPR pages.
  • FastAPI
  • APScheduler
  • Backtesting
  • Google OAuth
  • Docker
  • GitHub Actions

Research and augmented reality

Manufacturing and cultural heritage · research · 2016-2018

2D-3D matching for augmented reality

Problem
Recognizing an industrial component or an architectural detail from a photo and overlaying information, without markers.
What I did
For an AR industrial catalog: a server that segments the component with GrabCut and dense-CRF and registers it to the template via feature-based, ArUco, or manual-point homography. For the master's thesis: real-time registration of a photo against a 3D structure-from-motion model, comparing nearest-neighbor search backends down to a CUDA kernel, and a native Android app with video streaming. Published at AVR 2016.
  • OpenCV
  • SIFT
  • Structure-from-Motion
  • GrabCut
  • CUDA
  • Android

03

How I work

The same method on every project, from the first meeting to production. Short, verifiable specs, AI-assisted development with human review on every change, everything versioned.

  1. 1. Analysis and scoping

    One or two sessions with whoever knows the problem. The output is a goal, the available data, constraints (privacy, hardware, budget) and a written success metric.

  2. 2. Prototype in weeks

    A PoC that runs on your data, measured against the agreed metric. If the result does not hold up, I say so right away and we change course without months spent.

  3. 3. Production

    Code with automated tests, CI/CD, containers, documentation. Authentication, roles and logging from the start, not at the end.

  4. 4. Delivery and support

    Deployment in your environment (cloud, Kubernetes, VPS or on-premise), team training, monitoring and a direct channel for future changes.

04

Path

Riccardo Gasparini is a freelance AI engineer based in Modena, Italy. Since 2016 he has worked on industrial computer vision, LLMs, agents and RAG, forecasting on IoT and geospatial data, and on delivering complete web and mobile products. He is a licensed engineer (Modena register), a former research fellow at the AImagelab laboratory of the University of Modena and Reggio Emilia, co-founder and CIO of an AI startup from 2019 to 2024, and author of five international publications (ICCV, ICPR, IEEE IV). He works with manufacturing, agritech, medtech and service companies, remotely or on site.

Portrait of Riccardo Gasparini
modena · 44.65N 10.93E
10+
years in AI and vision
5
publications
1
H2020 project
100+
teaching hours
Eng.
licensed engineer
  1. 2022 · today

    Freelance AI engineer

    Consulting and development for manufacturing, agritech, retail, medtech and service companies: computer vision, RAG and agents, forecasting, complete platforms.

  2. 2019 · 2024

    Co-founder and CIO of an AI startup

    Technical lead: architecture, team, product. EU H2020 project as technology provider.

  3. 2016 · 2022

    Research fellow, AImagelab UNIMORE

    Computer vision and machine learning: people tracking, railway inspection, embedded vision, synthetic data. Five international publications.

  4. 2017 · 2020

    Teaching

    GPU programming with CUDA (second-level master), machine learning and video analytics, fundamentals of computer science. Five theses supervised.

  5. 2016

    MSc in Computer Engineering

    UNIMORE, 108/110. Thesis on real-time 2D-3D matching. Licensed engineer, Modena register.

  6. 2012

    BSc in Computer Science

    UNIMORE. Thesis on image reconstruction on NVIDIA GPUs.

05

Stack

Models and ML

  • PyTorch
  • ONNX
  • TFLite
  • CUDA
  • scikit-learn
  • Optuna

LLM

  • Claude
  • OpenAI
  • vLLM
  • Ollama
  • LangChain / LangGraph
  • Docling
  • Qdrant
  • OpenSearch
  • RAGAS

Vision

  • OpenCV
  • YOLO
  • YOLACT
  • FLIR Spinnaker
  • Allied Vision Vimba
  • Basler pypylon
  • GigE / PTP
  • Hailo
  • GAP8

Backend and deployment

  • FastAPI
  • Django
  • Docker
  • Kubernetes
  • Helm
  • ArgoCD
  • Istio
  • GitLab CI
  • AWS
  • Keycloak
  • PostGIS
  • InfluxDB

Frontend and mobile

  • React
  • Astro
  • Flutter

Method

  • Spec-driven development
  • TDD
  • CI/CD
  • AI-assisted coding

06

Frequently asked questions

What kind of projects do you work on?

Industrial computer vision projects, LLM-based systems (RAG, agents, structured extraction), forecasting on IoT and geospatial data, and web and mobile platforms that turn these models into a product. From PoC to production, with code, tests and deployment.

What sectors have you worked in?

Manufacturing and components, precision agriculture, retail, fitness and digital coaching, diagnostics and medtech, railways, institutional catering, university research. The method is the same: data, metric, prototype, production.

Do you work remotely or on site?

Both. I am based in Modena and work remotely with clients across Italy; for data acquisition, camera installations and sessions with the team I come on site, mostly in Emilia-Romagna and northern Italy.

Do you use cloud or on-premise models?

It depends on the data. When it can leave the company I use APIs like Claude or OpenAI; when it cannot, I run open models on your GPUs or on a dedicated server with vLLM or Ollama. I have put both approaches into production.

How long does a prototype take?

A measurable PoC generally takes two to six weeks, depending on the available data. Production depends on the integration: one to three months for a service with APIs, tests and deployment.

How do we get started?

Send me a couple of lines about the problem. We do a free thirty-minute call to see if it makes sense to work together. If so, I put together a proposal with the goal, success metric, timeline and cost.

How does pricing work?

A tailored quote after the call, project-based or by the day, or a monthly retainer for those who need an ongoing technical reference. No hidden costs: tools, licenses and infrastructure are decided together and remain yours.

What languages do you work in?

Italian and English. Documentation, code and commits are in English unless requested otherwise; meetings and reports in the team's language.

08

Contact

Have a problem that looks like one of these? Send me a couple of lines: I reply within one working day.

Modena, Italy. Remote across Italy and Europe, on site when needed.