Rolle 👨‍💻
Full-stack utvikling og problemløser for fysisk utstilling

Team 👥
- Alexander Fjellheim
- UIB MIX250: "Eyes of AI"

Varighet 🕘
2-3 måneder

Teknologier 🧮
- Computer Vision (Ultralytics)
- Torch, Matplotlib
- Raspberry PI, ESP32
- 3D-printing og CAD

Eyes of AI

Jeg ble ansatt av UiB til å bistå med teknisk utvikling til to gruppers bachelorprosjekt i medie- og interaksjonsdesign våren 2024.

Bachelorprosjektet var en teknologisk utstilling på Universitetsmuseet i Bergen som skulle ta opp menneskers forhold til kunstig intelligens og var utstilt fra mai 2024 til desember 2024. Jeg var med på å utvikle hovedinstallasjonen til Maskin eller Menneske og Eyes of AI. Videre skal jeg snakke om prosjektet til "Eyes of AI":

Eyes of AI- gruppen ønsket å ha en installasjon som skulle vise frem objektgjenkjenning og bruke det til oppgaver som: 'detection', 'segmentasjon','pose estimation' og 'classification'. Dette skulle videreutvikles til en interaktiv opplevelse for museumsbesøkende.

Utviklingen hadde flere faser der jeg implementerte objektgjennkjenning ved hjelp av forskjellige YOLO-modeller og GUI interface fra Figma prototyper og tilbakemeldinger. I begynnelsen tok vi utgangspunkt i en Raspberry Pi 4, webkamera og forskjellige touchskjermer for at gruppen kunne sette i gang med brukertesting.

Jeg har benyttet meg av mange gode resurser og dokumentasjon fra Ultralytics og iterativt implementert demoer av YOLO-modeller og funksjoner på tvers av hardware:

  • Raspberry PI 4
  • Raspberry PI + Google Coral USB TPU
  • Nvidia Jetson Nano
  • X86 CPU (Laptop)
  • Nvidia CUDA (Stasjonær PC med Nvidia GTX 1060)

Til slutt fikk vi tak i en stasjonær PC med et grafikkort kraftig nok til å gi oss nok through-put til å kjøre modeller som ga oss ønsket kvalitet og oppløsning. Likevel synes jeg at det var utrolig spennende å lære meg kvantisering av modeller og optimalisering for forskjellige runtimes og engines som: ONNX, Pytorch, TensorRT, NCNN og TensorFlow (TF Edge for Coral AI akseleratoren).

Det var et veldig kult prosjekt siden vi kunne kjøre inference på 4 forskjellige YOLO-modeller og bruke dataen til å plotte rammer, tekster, skjelett og segmentasjoner av bilde på toppen av live kamerafeed. I f.eks. 'classification' brukte jeg inference dataen til å produsere ordskyer av objekter og deres confidence verdier.

Hovedelementet i installasjonen ble da en touchskjerm med en GUI til å velge mellom de 4 modusene og få mer informasjon om hvordan de virker, og en 65 tommer skjerm som viser "Eyes of AI", altså live inference fra webcam med overlays og challenges som skal engasjere brukeren til å utforske hva som er mulig og finne evt. begrensninger med objektgjennkjenning.

MONTERING

I tillegg til fysisk montering av systemene, var det viktig at alt skulle kjøre automatisk og uavbrutt. I denne sluttfasen brukte jeg en god del tid på å skrive systemd tjenester til å auto-starte både GUI og objektgjennkjenningsprogrammene og binde de til riktige skjermer og oppløsninger og riktig xinput mapping av touchskjermen. Det tok mye testing og feilprøving før det ferdige produktet til slutt ble "plug-and-play" og bugs og brukerinteraksjoner som eventuelt kunne avbryte systemet ble patched.

REFLEKSJONER

Dette var et krevende prosjekt der jeg lærte utrolig mye. Jeg hadde et godt samarbeid med gruppen og det var spennende å utforske løsninger og idéer sammen. Lærte mye om fordeler og ulemper ved bruk av forskjellige teknologier og hardware og jeg er veldig fornøyd med resultatet av min tekniske løsning.

Lignende prosjekter:

Ta kontakt med meg ✌️
[email protected]
github logo