Tilbake til tidslinjen
skole mar 2024

Er bilen elektrisk?

Et gruppeprosjekt ved NTNU som avgjør om en bil er elektrisk, ende til ende fra ett enkelt bilde. Jeg bygde datasyn-delen: en finjustert YOLOv8 som finner skiltet, så et CNN trent fra bunnen for å lese det, og til slutt et oppslag mot Statens vegvesen for å avgjøre motortype.

Pipelinen

  • Skiltdeteksjon: YOLOv8, ettertrent på et lite eget datasett med norske skilt fra varierte vinkler.
  • Skiltlesing: Et eget CNN trent fra bunnen på utklipp av skilt. Lite, raskt, overraskende treffsikkert.
  • Kjøretøyoppslag: Skilttegnene sendes til vegvesenets API, som returnerer motortype. Elektrisk eller ikke faller ut direkte.
Pipeline i fire steg: bilde fanget, skilt funnet i bildet, skilttegn lest, kjøretøydata hentet. Endelig klassifisering: 'Motor 1: Elektrisk (ELBIL)'.
Ende til ende: fang, finn, les, slå opp. Siste boks er en one-liner fra vegvesen-API-et.

Hvorfor trene en skiltleser fra bunnen

Generell OCR funker på skilt, men det er overkill: for mange parametere, for lite domene. Norske skilt har et fast alfabet, fast font, to forutsigbare utforminger. Et lite CNN med riktig induktiv bias slo standard-OCR på dataen jeg hadde, og kjørte en størrelsesorden raskere.

Ti-panels treningsdashbord: train/val-loss konvergerer, presisjon og recall klatrer mot 90-tallet, mAP@50 og mAP@50-95.
YOLOv8-finjustering. Loss konvergerer rent, presisjon ~0,98, recall ~0,95, mAP@50 ≈ 0,98.

Resultater ende til ende

På testopptak fra ekte gater i Trondheim merket systemet hver bil med riktig motorklasse i ett bilde. Elbiler ble markert grønt, fossile rødt.

Server-side visualisering: en svart elbil på en bygate med skiltet markert i grønt, klassifisert som helelektrisk.
Elbil: skiltet lest, vegvesen-API bekrefter elektrisk, boks tegnet grønn.
Server-side visualisering: en rød bil med skiltet sladdet, klassifisert som ikke-elektrisk.
Ikke-elbil: samme vei, annet svar fra API-et.

Gjennomgang

Full gjennomgang av pipelinen.

Hva jeg ville forbedret

Klassifikatoren nøler av og til på skilt med mye bevegelsesuskarphet, slik du får det fra biler som faktisk kjører. Et lite tidsvindu med bilder, eller et raskt deblurring-pre-pass, kunne tettet gapet. Vegvesen-API-et var også det desidert tregeste steget. Caching på skiltprefiks ville hjulpet.

Emnerapport

Smart City-prosjektrapporten (IELS2001), med metode, datasettvalg og resultater, ligger i repoet:

Tilbake til tidslinjen