Hi, I’m Morten Møller Christensen.

I’m a Machine Learning engineer with an MSc in Mathematical Modelling and Computation from the Technical University of Denmark (DTU). I work primarily with machine learning for imagery and geospatial data, building practical models and reproducible pipelines for tasks such as satellite image segmentation and spatial post-processing.

Alongside my academic background, I have industry experience from a student position developing e.g. .NET APIs and data workflows for enterprise systems. Outside of work, I enjoy football, sport in general, and long walks.

Portrait of Morten Møller Christensen
Python • PyTorch Remote sensing Segmentation + topology Masks → graphs C#/.NET APIs Data pipelines SQL Linux High Performance Computing GPU-based computing

My skills

Machine learning & deep learning

  • Neural network design and supervised training
  • Deep architectures for classification and segmentation
  • Weakly supervised learning
  • Optimization, regularization, and generalization
  • Representation and feature learning
  • Model evaluation and diagnostic analysis

Computer vision & image analysis

  • Image representation, filtering, and multiscale analysis
  • Classical and deep-learning-based image segmentation
  • Analysis of spatial structure and geometry in images
  • Vision models for dense prediction and scene understanding
  • Robust evaluation under noise, resolution, and domain variation

Geospatial data & remote sensing

  • Aerial and satellite imagery analysis
  • Multimodal geospatial data (optical, radar, DEM)
  • Spatial preprocessing and tiling pipelines
  • Raster-to-structure representation extraction
  • Geographic variability and scale effects

Model analysis & responsible AI

  • Algorithmic fairness and dataset / label bias
  • Shortcut learning and spurious correlations
  • Model interpretability (saliency maps)
  • Adversarial robustness and failure modes
  • Conceptual foundations and epistemology of AI

Optimization & graph-based methods

  • Convex and discrete optimization techniques
  • Integer programming and constraint-based modeling
  • Network optimization and flow-based formulations
  • Graph representations of relational and structured data
  • Trade-offs between optimality, scalability, and complexity

Scientific computing & performance

  • Numerical computing and data processing in Python
  • Performance-aware code and memory-efficient workflows
  • Parallelism and scalable computation strategies
  • Simulation-based experimentation and reproducibility
  • Bridging mathematical models and computational implementation

Projects

A small selection. Each has a short pitch and a few links.

RiverSeg — multimodal river extent segmentation Featured

Binary water masks from Sentinel‑1/2 + DEM with topology-aware losses and mask→graph extraction.

Remote sensing Segmentation PyTorch
Read more

Scope: Global river surface-water segmentation across varied environments (ice, rainforest, wetlands), built to stay connected for downstream graph extraction.

Pipeline: Preprocessing (tiling/normalization), pseudo-labeling, model training (U‑Net variants), and post-processing from mask → vector/graph.

Training: Combined overlap metrics (Dice/IoU) with topology-aware consistency using clDice to preserve thin, connected river structure.

CrowdCLIP — extending unsupervised crowd counting with VLMs Research

An experimental extension of the CrowdCLIP framework, exploring whether CLIP-style vision–language embeddings and modified ranking objectives can improve unsupervised crowd counting from image patches. Based on and inspired by the original CrowdCLIP paper and implementation.

CLIP Computer vision Unsupervised learning
Read more

Idea: Use strong pretrained image-text embeddings to stabilize counting signals at patch-level, then learn a ranking/ordering objective for counts.

Work: Training/eval pipeline, data handling, ablation structure, and error analysis (lighting, occlusions, scale, density extremes).

3D BugNIST classification Research

3D CNN classification on BugNIST3D insect volumes, with SmoothGrad saliency to inspect what the model actually uses for decisions (and to expose shortcut learning).

3D CNN Shortcut learning Interpretability (SmoothGrad)
Read more

Idea: Use 3D convolutions to classify bugs in the volumetric dataset. Then use voxel-level saliency to interpret what drives the prediction.

Data: BugNIST3D contains 12 bug types with ~750 volumes per class (one class is larger), each sample stored as a 128×64×64 voxel grid.

Model: A compact 3D CNN with four convolution + pooling stages and two fully connected layers producing a 12-class probability vector.

Interpretability: SmoothGrad saliency maps (averaged gradients over noisy inputs) to reduce gradient noise and highlight the most influential voxels.

Key finding: The “high-accuracy” model learned a shortcut by focusing on surrounding cotton/background. By removing the cotton the accuracy was reduced, but it made the saliency maps focus on the insects themselves.

.NET integrations — APIs + data workflows Production

ASP.NET Core services integrating CRM/ERP systems with robust config, monitoring, and clean interfaces.

C#/.NET MongoDB APIs

Get in contact

Fastest is email. The form below sends directly to my inbox.

Email: use the form below Location: Copenhagen / Zealand
Powered by Formspree