
Roof Tile Anomaly Detection
Unsupervised computer-vision quality control that flags broken roof tiles on a high-volume factory line, trained from a sparse labelled dataset.
Off-the-shelf vision software is built for someone else's line. We build the model for yours, trained on your cameras and your data, even when you only have a handful of labelled defects.
Our ML lead has shipped vision systems for factory quality control, real-time queue monitoring, and face recognition backed by a vector database. Here's what each one does and how it was built.

Unsupervised computer-vision quality control that flags broken roof tiles on a high-volume factory line, trained from a sparse labelled dataset.
A real-time vision system that tracks people in a hall or public space and separates general occupancy from the people actually standing in a queue.
Research and development work on speech synthesis and recognition, plus deep-learning face recognition backed by a vector database.
These projects were built by Pavlo Holubchykov, Raw Code's Lead ML/AI Developer, some of them before Raw Code was founded. More about Pavlo.
Wienerberger had too few labelled broken tiles to train a normal classifier. So the model learned what a sound roof tile looks like, using Vision Transformer features scored by a One-Class SVM in PyTorch, and flags anything that doesn't match.
Roof Tile Anomaly Detection case studyA headcount doesn't tell staff how long the line is. The queue system uses YOLO and OpenCV to detect people, then splits the space into configurable zones so people waiting in line are counted separately from everyone else in the hall.
Real-Time People Monitoring & Queue Management case studyFor TietoEvry, face recognition was improved with deep-learning embeddings stored in a Milvus vector database. Milvus ran on Kubernetes with automated pipelines so the system could scale.
Speech & Face Recognition R&D case studyProcess and what's included are on our AI Automation Consulting & Implementation page.
For defect detection, often less than you'd expect. The Wienerberger model was trained mainly on normal tiles and flags anything that looks different, so it didn't need a large library of labelled defects.
It's quoted against a written scope after a short scoping call, because a proof of concept on recorded footage and a system running live on a factory line are different jobs. For reference, our AI automation projects run $3k–$30k project or retainer.
Python throughout, with PyTorch for model training, YOLO and OpenCV for detection, and Vision Transformers for feature extraction. Deployment has run on Docker, Kubernetes, and Azure.
Counting or recognizing people can involve personal information under Canadian privacy law. Whether video is stored, for how long, and where are decided at scoping. Check them against your own obligations before anything goes live.
Got footage of the problem?
Send a sample and we'll tell you on a free call whether a model can catch it.
Book free consultation