Skip to content
MH

● Lahore, Pakistan · ML engineer at Wortel.ai · ML Engineer

I take models from notebook to shipped, and keep the receipts.

Detection, segmentation, pose and depth pipelines in production.

Most portfolios show you the result. This one shows you the search — 69 experiments, including the 23 that failed.

Muhammad Mughees Ul Haq person 0.99
instance polygon · 31 vertices 800 × 800

He keeps seven CVs. So the site recompiles.

Same body of work, re-weighted for whoever is reading. Pick a role and the headline, the project order, the metrics on display and the CV download all change.

flagship

Eight model generations to move one number 35 points.

Find every picture frame on a wall that contains a human face, segment it, blur it. The rising line is what shipped. The crosses below it are the v4 campaign — five retrains that all lost to the model they were meant to replace.

The post-mortem found why: turning the old model up to confidence 0.72 lands on the same point, free, in one line. But its recall ceiling sat below where the old model already operated — a strictly dominated curve, not a tunable version.

Read the campaign
frame-polygon F1 · old ground truth imgsz 1792 · conf 0.35

The run log

Every experiment, including the ones that failed.

Hypothesis, config, what moved, and the verdict. Click any row to open it. Pick two with the diamond to diff them.

All 69 runs →

Work

Seven projects, ordered for the role you picked.

Privacy Face-Blur 2026

F1 49.8 → 84.7 across eight model generations

Find every picture frame on a wall that contains a human face, segment it tightly, and blur it. Not face detection — the faces are printed, small and distant, and blurring only the face leaves the photo identifiable.

Best F1
84.7
Shipped
81.2
YOLO11m-segRF-DETR-SegSAM ViT-BDINOv2
open project →
Fill-Level Estimation 2026

MAE 18.57 → 2.14, and one result deliberately thrown away

A fixed camera points at an outdoor waste bin. Output one integer: how full is it, 0 to 100. No depth sensor, no second view — just one RGB frame at 800x600.

Production MAE
2.14
R²
0.9916
Depth Anything v3ONNX RuntimeXGBoostHistGradientBoosting
open project →
Four-Corner Keypoints 2026

AP 1.000 — published with its own caveat attached

Detect the four corners of a bin in fixed CCTV imagery and export to ONNX. Its output becomes the crop stage of the fill-level pipeline — the two projects are one delivery chain.

Validation AP
1.000
Held-out AP
0.9804
MMPoseHRNet-w32MSRA heatmapsAlbumentations
open project →
Ten Thousand Polygons 2020 — 2026

10,130 annotations from 850 lines of pipeline

Six annotation projects across 34 label classes, delivered as CVAT-importable COCO. An open-vocabulary VLM proposes boxes, SAM turns them into instance masks, and a renderer produces visually consistent plates regardless of source resolution.

Annotations
10,130
Densest frame
1,761
Qwen2.5-VLSAM ViT-BCOCO 1.0CVAT
open project →
Smart RAG Agent 2026

$0 a month, sub-2s, nothing leaves the machine

A rebuild of an assistant that queried its knowledge base on every message including "hello", returned fabricated links, and refused work as "outside my lane". The replacement runs entirely on one box.

Running cost
$0
Routing
100%
FastAPIOllama / Kimi K2.5ChromaDBnomic-embed-text
open project →
Automation Systems 2026

Five-stage lifecycles that can be safely re-run

Two systems: a 17-node content pipeline that conditionally skips a paid API when the format does not need it, and a three-workflow no-code outreach stack reimplemented as ten Python modules in five days.

Lifecycle
5
Retry cap
≤4
n8nPlaywrightPythonFastAPI
open project →
Smart Car Health Inspection 2024 — 2025

Two detectors and an engine classifier, fused geometrically

A 61-page thesis and a working rig. Damage detection and part detection run independently, are matched by polygon overlap, and are combined with live engine telemetry into a single 0-10 health rating.

Damage mAP@50
84.3%
Parts mAP@50
87.6%
YOLOv8-segESP32FreeRTOSOBD-II / ELM327
open project →
annotation

Ten thousand polygons from 850 lines of pipeline.

An open-vocabulary model proposes boxes, SAM turns them into instance masks. One larvae image carries 1,761 of them — and the model is called exactly once per image, to find the dish. Everything inside is classical computer vision.

annotations
10,130
classes
34
projects
6
Open the plates

Export checkpoint

Currently open to machine learning and computer vision roles.

The CV below matches the role selected at the top of the page. Everything on this site traces back to a document in the archive, and the numbers carry their config.