EN NO
Tilbake til CV

Private prosjekter

Personlige prosjekter bygget på fritiden

Norsk AI-jobbtracker

aivarsel.netlify.app ↗

En fullstack webapplikasjon som automatisk sporer og analyserer AI-relaterte stillingsutlysninger i det norske arbeidsmarkedet.

  • Hver morgen kl. 06:00 UTC henter en planlagt serverless-funksjon alle nye stillingsutlysninger publisert den dagen fra NAV via deres autentiserte feed-API.
  • Hver stilling sendes til en LLM for klassifisering — modellen leser stillingstittel, full beskrivelse og yrkeskategori, og avgjør om rollen er AI-relatert og tildeler en type (ingeniør, analytiker, forsker, leder, konsulent).
  • Resultatene lagres i en Postgres-database og aggregeres til daglige snapshots med antall, topp-arbeidsgivere og lokasjoner.
  • Det offentlige dashbordet viser trendgrafer over nye AI-stillinger per dag, fordeling per rolletype, topp-arbeidsgivere, topp-kommuner og en live-feed av de nyeste aktive utlysningene.
  • Feed-paginering bruker en persistent markør lagret i databasen, slik at den daglige synkroniseringen kan fortsette nøyaktig der den slapp på tvers av kjøringer.
  • Stillingsdetaljer hentes parallelt fra NAVs detaljendepunkt for å hente fulle beskrivelser før klassifisering.
  • HTML strippes fra stillingsbeskrivelsene før de sendes til LLM-en.
  • Inaktive utlysninger flagges raskt i databasen i henhold til NAVs bruksvilkår.
  • En separat pipeline-overvåkingsside gir sanntidsinnsikt i synkroniseringsstatus, klassifiseringsantall og en live-tabell over behandlede stillinger med AI-vurderinger og begrunnelser.
React Vite Recharts Tailwind CSS Netlify Serverless Functions TypeScript / ESM Supabase (PostgreSQL) Ollama Cloud API NAV Stilling Feed API

DIY Robotarm — YOLOv8 + Hailo-8

github ↗

En sanntids datasynspipeline som lar en desktop-robotarm autonomt oppdage og spore kuber ved hjelp av et egentrent nevralt nettverk akselerert av en dedikert NPU.

  • Et kamerabilde behandles av en YOLOv8s-modell som kjører på en Hailo-8 M.2 NPU koblet til en Raspberry Pi 5, og oppnår 15–30 FPS sammenlignet med 1–2 FPS på Pi-prosessoren alene.
  • Oppdagede kubeposisjoner mappes fra pikselkoordinater til robotens arbeidsrom-XYZ via homografi og RBF-interpolasjon, og sendes deretter som G-kode-bevegelseskommandoer til en Arduino-styrt 4-DOF-arm.
  • En tretrådsarkitektur separerer bildeopptak, NPU-inferens og kommandoutsending for å opprettholde sanntidsgjennom­strømming.
  • Modellen ble trent på 119 annoterte bilder (80/20-fordeling) og oppnådde 91,7 % mAP50 etter 100 epoker; konvertert fra PyTorch → ONNX → HAR → HEF for Hailo-runtimen.
  • INT8-kvantisering nullet opprinnelig ut klasseskåre-hodene på grunn av mettede nullpunkter — løst ved å kalibrere med tilfeldig uniform støy i stedet for ekte bilder.
  • Etterbehandling (DFL-dekoding, sigmoid, NMS) kjører på Pi-prosessoren, mens Hailo-8 håndterer det nevrale nettverkets backbone og deteksjonshoder.
  • Kommandoer videresendes fra Pi til en Windows-vert over TCP, og relées deretter til Arduino via seriell kommunikasjon på 115200 baud.
Raspberry Pi 5 Hailo-8 NPU YOLOv8 OpenCV picamera2 SciPy RBFInterpolator Arduino / G-kode Python