Skip to content
View kapi0okapi's full-sized avatar

Highlights

  • Pro

Organizations

@Nabla-NTNU

Block or report kapi0okapi

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please donโ€™t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this userโ€™s behavior. Learn more about reporting abuse.

Report abuse
kapi0okapi/README.md

Hello there. ๐ŸŒŒโš”๏ธ I'm Kacper ๐Ÿ‘‹

AI Engineer ยท Computer Vision & 3D Perception

Detection, segmentation, depth, LiDAR SLAM, from raw sensor data to deployed models

I build computer vision and 3D perception systems end to end: the data pipeline, the model, an honest evaluation against an independent reference, and deployment on the hardware it has to run on. AI engineer at Lighthouse Consulting (visual inspection and predictive maintenance) and MSc student at NTNU in Trondheim (Computer Science with AI, and Industrial Mathematics).

{
  "role": "AI Engineer",
  "focus": ["computer vision", "3D perception", "edge AI"],
  "now": "AI engineer @ Lighthouse Consulting",
  "education": "MSc @ NTNU, AI & Industrial Mathematics",
  "website": "kacperpawlowski.tech"
}

๐Ÿ”ญ Projects

Every project starts from raw data and ends with a number I can defend. Where a project reimplements a published method, its README compares my results with the paper's.

Not everything is here. Much of my professional work is covered by NDAs, and some projects are still being built or have not been published yet. The repositories below are my own work, open source and reproducible, and new ones are added as they are finished.

Computer Vision ยท Detection & Tracking

Project What it does Demo
vehicle-counter Counts vehicles in traffic video. Detects cars and trucks with YOLO26, follows each one from frame to frame with tracking algorithms such as ByteTrack and BoT-SORT, and counts it once when it crosses a line: 2.7 % counting error on traffic cameras it never saw. Vehicles with track ids counted as they cross a line on a traffic camera
hand-gesture-recognition Recognises hand gestures from a camera. Compares small neural networks on hand keypoints from MediaPipe with a YOLO26 detector that looks at the whole image (99.3 % of gestures right). Hands in video clips with the MediaPipe skeleton and the recognised gesture

Computer Vision ยท Segmentation

Project What it does Demo
road-scene-segmentation Labels every pixel of a road scene: road, cars, signs and guard rails. Compares seven segmentation models, including YOLO26, SegFormer and Mask2Former, and teaches one of them to find guard rails. Semantic segmentation of a Norwegian motorway
clock-reader Reads the time from a photo of an analogue clock. A U-Net in PyTorch, trained only on generated images, finds the hands, and geometry turns them into a time. 98.6 % of tilted clocks are read within 5 minutes. Clock read step by step: photo, segmentation, rectified dial

Depth, 3D Perception & SLAM

Project What it does Demo
monocular-depth Estimates distance from a single camera image. Compares eleven depth models, including Depth Anything and Depth Pro, on the KITTI driving dataset, and fine-tunes a real-time YOLO26 model that measures distance in metres more accurately than the large metric models. Depth map of a motorway video
lidar-slam Tracks a car's position and builds a map from LiDAR scans (SLAM). My own implementation of KISS-ICP with loop closure drifts 0.63 % over all of the KITTI dataset. LiDAR map of KITTI 00 growing along the trajectory, with loop closures
lidar-road-segmentation Classifies 3D LiDAR points along a road, such as road, cars and guard rails, with a RandLA-Net network in PyTorch (81.8 mIoU, same as the paper), then measures guard-rail height from the result. Rotating Toronto-3D street point cloud classified by RandLA-Net
gnss-ins-fusion Combines GPS and motion-sensor (IMU) data with a Kalman filter for a smooth, accurate position, even when GPS drops out in tunnels. Tested on real KITTI drives. KITTI drive with GNSS outages bridged by the IMU

Visual Inspection

Project What it does Demo
visual-anomaly-detection Finds defects in product images after learning only from good ones. PatchCore and PaDiM built in PyTorch, close to the published results on the VisA benchmark (AUROC 0.914). Anomaly maps on VisA candles, circuit boards and cashews
guardrail-inspector Checks road photos against Norway's road database. Trains image classifiers in PyTorch on 30,000 photos labelled automatically from map data (0.98 AP for guard rails), and maps where photos and database disagree. Drive along the E6 with the guard-rail model next to the road register
inspection-platform A web platform that compares AI results with Norway's road database, built with PostgreSQL/PostGIS, FastAPI, an interactive map, Docker and Terraform for AWS. The guard-rail model reaches 91 % precision. Map of model results against the road register

Drones

Project What it does Demo
drone-object-detection Finds people and vehicles in drone photos, where most objects are tiny. Trains YOLO26 on image tiles instead of shrunk photos, which nearly doubles the accuracy on small objects (26.5 AP on VisDrone). Detections of cars and people from a drone
drone-landing-zones Decides where a drone can land safely. A YOLO26 segmentation model labels the ground below, and a rule in metres picks the nearest clear spot away from people: 94 % safe decisions on unseen photos. Landing spot re-planned while people move through a garden

Edge AI & Deployment

Project What it does Demo
edge-optimization Makes a YOLO26 detector three times smaller for edge devices with INT8 quantization (ONNX Runtime, OpenVINO, Core ML, TensorRT). Keeps 97 % of the accuracy, ahead of quantization-aware training, and runs up to 2x faster on x86 CPUs. One street photo through FP32 and three INT8 exports of YOLO26n

Face Analysis

Project What it does Demo
age-estimation Estimates a person's age from a face photo with a ConvNeXt network, after aligning the face with MediaPipe, and reports the error separately for age groups, genders and ethnicities. Off by 4.25 years on average. Face landmarks, alignment and the predicted age next to the actual age

More on kacperpawlowski.tech: project write-ups, technical articles (English, Norwegian, Polish) and a lab where four of these models run in your browser.


๐Ÿ› ๏ธ Tech Stack

The AI and computer vision stack first, then everything else I build with.

๐Ÿง  AI, Deep Learning & Computer Vision

PyTorch Ultralytics YOLO26 OpenCV Hugging Face timm MediaPipe scikit-learn NumPy SciPy TensorFlow Pandas Jupyter JAX

๐Ÿ“ 3D Perception, LiDAR & Sensor Fusion

LiDAR point clouds SLAM and odometry Kalman filters GNSS and IMU laspy

โšก Model Deployment & MLOps

ONNX Runtime TensorRT OpenVINO Core ML INT8 quantization and QAT Docker Terraform Slurm GPU cluster

๐Ÿ—บ๏ธ Geospatial Data

PostGIS GeoPandas MapLibre

๐Ÿ’ป Languages

Java Python C# C++ JavaScript TypeScript HTML5 CSS3 Rust R Bash

๐ŸŽจ Frontend & Design

React Next.js Tailwind CSS Bootstrap Figma

โš™๏ธ Backend & APIs

Node.js Express.js Spring Boot Django Flask FastAPI

๐Ÿ—„๏ธ Databases & ORMs

PostgreSQL MySQL MongoDB SQLite Firebase

โ˜๏ธ Cloud, DevOps & Hosting

Git Azure AWS GCP GitHub Actions Linux Ubuntu Nginx

๐Ÿ“ฑ Mobile & Game Dev

Flutter React Native Unity


๐Ÿ“ซ Let's connect

Popular repositories Loading

  1. DeepTactics DeepTactics Public

    Cogito NTNU

    Python 1

  2. NEATactics NEATactics Public

    Forked from CogitoNTNU/NEATactics

    NEAT is neat! Neuroevolution of augmenting topologies is a genetic algorithm.

    Python 1

  3. kapi0okapi.github.io kapi0okapi.github.io Public

    JavaScript

  4. kapi0okapi kapi0okapi Public

  5. age-estimation age-estimation Public

    Apparent age from aligned face images - three heads compared, errors reported per age group, gender and ethnicity.

    Python

  6. clock-reader clock-reader Public

    Reads the time from a photo with no learned time model - a U-Net segments the hands, projective geometry does the rest.

    Python