Computer vision & applied ML β perception pipelines that have to work on real hardware, in unpredictable places, not just in a notebook.
Three projects below, roughly in order of how much dirt/asphalt/GPU-fan-noise was involved.
Real-time canopy detection driving fertilizer nozzle actuation on Jetson edge hardware.
A single RGB frame goes through MiDaS DPT for relative depth, then a YOLOv8 canopy detector. Detections collapse into a binary mask, get integrated over three zones aligned with the physical nozzle bar, and get thresholded to fire three independent GPIO signals β live, on a Jetson, in a vineyard.
| Pipeline | MiDaS depth β YOLOv8 canopy detection β 3-zone coverage β GPIO actuation |
| Deployed on | NVIDIA Jetson, live camera, real nozzle bar |
| Repo | Depth-Guided-Precision-Agriculture-TSMG2026 Β· project page |
Python PyTorch YOLOv8 MiDaS OpenCV Jetson.GPIO
A perception layer for the moment a self-driving stack sees something it wasn't trained on.
Navigation models trained on tidy urban data don't know what to do with a stray tire in the road at dusk. This pipeline flags unknown objects (confidence-thresholded YOLO-World, and a class-agnostic NanoOWL + YOLO-World consensus check), gates out single-frame glitches, then asks a vision-language model a direct question β is this traversable? β before gating forward motion on the answer.
Evaluated local VLMs (Qwen2-VL, LLaVA-1.5, Moondream2, InternVL2) against cloud APIs for the traversability call. Local models ran 10β30+ minutes per image on CPU β a non-starter for anything real-time. Cloud APIs settled the question:
| Pipeline | Unknown-object detection β persistence gate β VLM traversability query β AprilTag-gated navigation |
| Result | GPT-4.1-nano: 88.9% traversability accuracy at ~1.9s mean latency |
| Repo | calpoly-csai/Out-of-Distribution-Autonomous-Navigation-CSAI2026 Β· project page |
Python YOLO-World NanoOWL Gemini GPT-4.1 AprilTag OpenCV Hypothesis
"Letterboxd for music." A social album-logging app β rate, review, and track what you listen to, built as a full-stack web + mobile pair.
Ports Letterboxd's proven feature set onto albums instead of films: dated listening logs with backdating and relisten tracking, half-star ratings with a weighted Bayesian average, reviews, custom ranked/unranked lists, follows and an activity feed, member profiles with a favorites shelf. Web is the feature-complete reference; the Expo mobile app is a native front end on the same API.
| Web | Next.js 16, React 19, Tailwind, better-auth, SQLite |
| Mobile | Expo / React Native, TypeScript, file-based routing |
| Repo | the-aestheticist |
TypeScript Next.js React Native Expo SQLite
Reach out on LinkedIn or check out more at ivantorriani.github.io.







