Reliable ML systems
outside the lab.

I'm Yuhe Lu, a Math & Computing Science student at University of Glasgow.

01

About

I build machine learning systems that are supposed to work in the real world — then I find out where they don't.

I'm Yuhe Lu 陆禹翮, studying Mathematics and Computing Science at the University of Glasgow, graduating in 2027. Most of what's on this page comes out of one habit: build something, then go looking for the conditions under which it stops working.

My clearest example so far is a project segmenting crop residue in field images. The model did well in testing, but accuracy fell on locations it hadn't seen before, and it did worst on the highest-coverage images — a condition the training data barely represented. That failure taught me more about what "reliable" actually requires than any of the cases where the model worked fine.

That's the question I want to keep asking: whether it keeps performing once the conditions around it change. One project isn't enough to answer that yet, but it's the direction I want the rest of this to go.

Temporary portrait placeholder showing a grey-and-white cat.

Education

Expected 2027

University of Glasgow

BSc (Hons) Mathematics and Computing Science

Glasgow, United Kingdom · 2022–2027

Machine Learning Computer Vision Algorithms Networked Systems

02

Selected project

A representative crop-residue segmentation result comparing the original field image, ground-truth mask, U-Net prediction, and false-positive and false-negative error map.

Completed · Summer 2026

1. Crop Residue Coverage Estimation

An end-to-end computer vision project for segmenting crop residue in field images and estimating surface coverage, with a focus on generalisation across collection sites.

Problem

Automate residue coverage measurement from field photographs despite changes in soil, lighting, vegetation, and camera conditions.

Approach

Established a Random Forest baseline, built a Mini U-Net from scratch, and developed a stronger U-Net with an ImageNet-pretrained ResNet34 encoder using segmentation_models_pytorch.

Evaluation

Used location-level training, validation, and held-out test splits, evaluated with IoU, Dice, precision, recall, and coverage MAE, and tested SRPNet as an external cross-domain reference.

Results

Best model
ResNet34 U-Net
Test IoU
0.826
Test Dice
0.905
Coverage MAE
7.71 pp

Compared with the Mini U-Net, the final model improved IoU from 0.778 to 0.826 and reduced coverage MAE from 11.73 to 7.71 percentage points.

My contribution

  • Built the image–mask pairing, preprocessing, augmentation, and PyTorch data-loading pipeline.
  • Created a Random Forest baseline and implemented a compact Mini U-Net from scratch.
  • Developed the final ResNet34 U-Net with transfer learning, BCE–Dice loss, early stopping, and reproducible evaluation.
  • Investigated cross-location domain shift, compared against the external SRPNet model, visualised failure cases, and identified label quality as an evaluation limitation.
PythonPyTorchsegmentation_models_pytorchscikit-learnU-NetResNet34Semantic SegmentationTransfer Learning

Next

More work will be added here, including my final-year project and future research-focused builds.

03

Skills & interests

Programming

  • Python
  • Object-oriented Programming (Java)
  • HTML, CSS & JavaScript
  • Data structures & algorithms

ML & computer vision

  • PyTorch · scikit-learn
  • CNNs · U-Net · transfer learning
  • Computer vision
  • semantic segmentation
  • Model training & evaluation

Tools

  • Git · GitHub · command line
  • NumPy · OpenCV · Jupyter
  • VS Code · command line
  • GitHub Pages · Cloudflare

Research interests

  • Machine Learning Systems
  • Reliable & robust machine learning
  • Efficient Training & Inference
  • Domain Generalisation
  • Computer vision in real-world settings

Let’s connect

Interested in research, internships, and practical ML problems.

If you’d like to discuss an opportunity, a project, or a shared research interest, feel free to get in touch.