UiB Mixmaster

crowdKnowledge

- et webkamera blir til en automatisert sikkerhetsvakt

Av Fredrik Håland Jensen

 

crowdKnowledge er et system for smartovervåking. Det kan gjenkjenne diverse objekter i en live videostrøm og om nødvendig utløse en alarm eller varsle brukeren. Man kan tenke seg at sikkerhetsselskaper kan ha bruk for slik teknologi, men crowdKnowledge kan også bringe mer avansert overvåkningsmuligheter til folk flest.

Høsten 2017 jobbet jeg med å lage en automatisk “sikkerhetsvakt”. Resultatet ble crowdKnowledge. Ved hjelp av datakraft, programvare og litt koding gjorde jeg et webkamera til en sikkerhetsvakt som kan gjenkjenne ting, markere dem og deretter vise hvor de befinner seg i sanntid. Hvis tingen som blir gjenkjent regnes som farlig vil programmet varsle om det.

 Bilde 1, bildetekst: crowdKnowledge i aksjon (skjermbilde fra en live videostrøm)

Bilde 1, bildetekst: crowdKnowledge i aksjon (skjermbilde fra en live videostrøm)

Ideen

Ideen bak crowdKnowledge kommer fra filmverden. I flere filmer må protagonisten eller antagonisten komme seg til et sted usett. Hinderet er da ofte en sikkerhetsvakt som ser på flere monitorer med videostrømmer fra CCTV-kamera. Måten karakteren klarer det er enten ved å sette vakten ut av spill, lure teknologien eller at vakten er uoppmerksom. Hvis sikkerhetsvakten hadde hjelp med å følge med på alle skjermene samtidig, og at skjermene gir tilbakemelding på hva som vises, vil sikkerhetsvakten ikke bare jobbe mer effektivt, men også gjøre en bedre jobb. Ut ifra det sprang ideen om at hver videostrøm skulle analyseres for farlige objekter ved hjelp av objektgjenkjenning.

I tillegg var tanken å utforske hvilke muligheter forbrukere vil få med en slik teknologi. Ettersom prosjektet nærmet seg slutten slo det meg at hvis selv jeg klarer å lage dette vil jo “folk flest” ha tilgang til kunnskapen som trengs for å oppnå et lignende resultat.


You only look once

En annen inspirasjon for crowdKnowledge var YOLO. YOLO (You only look once) er åpen kildekode for objektgjenkjenning i sanntid. Man kan se det i aksjon her under.

Kort fortalt er crowdKnowledge en teknologi som bygger på YOLO, men den er “skreddersydd” for sikkerhet. Flere videostrømmer kan overvåkes samtidig, og hvis et objekt utgjør en fare vil crowdKnowledge varsle med en spesifikk lyd for hvilken monitor objektet er identifisert i og et gitt volum for hvor farlig objektet er. Objektet blir markert med en fargekodet firkant rundt og følges så lenge objektet kan gjenkjenne det. Hvor kraftig maskinvare brukeren har bestemmer hvor mange videostrømmer som kan bruke crowdKnowledge på samtidig.


Hvordan man starter crowdKnowledge

For å bruke crowdKnowledge trenger man en datamaskin, OpenCV, Python, Visual Studio, et webkamera, Anaconda Prompt og YOLO.

For å starte programmet må man først bygge crowdKnowledge med Visual Studio.

 Bilde 2, bildetekst: Her bygges en versjon for datamaskiner uten skjermkort

Bilde 2, bildetekst: Her bygges en versjon for datamaskiner uten skjermkort

 
 

Deretter må man i Anaconda Prompt finne frem hvor skriptet ligger med en “cd” kommando. Når man er i den mappen starter man skriptet ved å skrive “python *navnet på skriptet* -d *lokasjonen til x64 mappen i crowdKnowledge*”.

 Bilde 3, bildetekst: Her starter crowdKnowledge. Feilmeldingen er fordi et webkamera ikke er koblet til.

Bilde 3, bildetekst: Her starter crowdKnowledge. Feilmeldingen er fordi et webkamera ikke er koblet til.

Når det er gjort dukker et vindu opp med en live videostrøm fra webkamera. Hvis et objekt blir gjenkjent vil det tegnes en firkant rundt slik som i bilde 1. I bilde 1 gjenkjenner crowdKnowledge både en person, som var teknisk veileder i faget, og objektet “flaske”.

Funksjonalitet til å bare gjenkjenne det objektet man ønsker, som en flaske, ble også implementert. Dette ble gjort ved å endre C-koden i YOLO.


Smarthjem

Smarthjem er et voksende markedssegment. Man kan få video av de som ringer på dørklokken, man kan spørre smarthøyttaleren sin om hvordan været blir i morgen og man kan surfe internett på kjøleskapet.  Å lage et program som crowdKnowledge er relativt billig, nærmest hvem som helst kan både oppnå den kunnskapen og de midlene som trengs. “Alle” kan lage sin egen sikkerhetsvakt som varsler hvis nabohunden kommer inn i hagen, eller man kan sette opp et kamera som passer på at ingen sjekker mobilen når familien spiser middag.

Her er det bare personvern som setter grensen.