Pozdrav svima!

Nedavni članak koji smo izbacili bio je vezan za analizu rezultata digitalnih oglasa i njihovu usporedbu pomoću Google Analytics API-ja. Članak je zanimljiv, i daje dobru predodžbu što je sve moguće napraviti automatizacijom (odgovor je puno toga).

U duhu paranoičnih ljudi koje je ova korona kriza izbacila na obalu javnih komentara svih mogućih članaka na internetu, u ovom članku pričamo o gubitku privatnosti i tehnologiji koja već danas omogućuje praćenje ljudi 24 sata, dnevno, 7 dana u tjednu.

Da, nije bilo dovoljno to što 5G antene uzrokuju korona virus, što korona virus u sebi ima tragove AIDS virusa i što Bill Gates nema pametnijeg posla nego svih čipirati i … Stvarno više ne znam. Čini mi se da postoje ljudi koji samo traže članke na kojima još nisu ostavili komentar i bez da uopće pročitaju išta u članku, počinju pričati o tome kako će uskoro roboti s puškama kontrolirati svijet. Postoji taj jedan tip koji je opsjednut puškama i robotima i u svakom komentaru, neovisno o sadržaju članka, mora to podijeliti.

Ove ideje postale su tako bizarne, da moj um jednostavno nije baždaren na to.

Ljudi, razumijem da se bojite  i pokušavate racionalizirati situaciju. Ne možete je racionalizirati jer je situacija strašna, čudna i nerazumljiva. Zato pokušavate svijet objasniti tako da se čini da i dalje imate kontrolu i da na neki način stojite iznad svega toga. To je ok. Ja se isto bojim. Ja isto imam osjećaj kao da nemam kontrolu, kao da svijet nije sigurno mjesto i kao da sve što znam lagano nestaje. Neću reći da sam se pomirio s time, ali znam dovoljno da razumijem da je priroda kompliciranija nego možemo uopće zamisliti. Ideje oko toga što se događa nisu niti mali djelić istine, jer je ta istina neshvatljiva, a stvarnost je čudnija nego što možete zamisliti.

Uglavnom, prepoznavanje ljudi i njihovih kretanja po gradu, to je tema danas! Stojim iz toga da je ova tema strašnija nego 5G antene, čipiranje i kojekakve gluposti koje lupetate.

Evo malo muzike da vas uvede u duh ovog članka.

Uvod

ML (Machine Learning) zadnjih je godina uzeo maha i danas je moguće napraviti “umjetnu inteligenciju” koja može prepoznavati ljude preko kamera s relativno malo truda.

Danas ću prikazati rezultat toga, gdje će model prepoznavati ljudi preko javih kamera koje možete naći na livecamcroatia. Ovo su javne kamere dostupne svima na internetu te smo dobili dopuštenje da ih koristimo, kao što smo snimili samo ljude koji su se složili sa time. Ako se slučajno negdje pronađete, možemo vas “zamutiti” sa videa. Ali pošto su to javni podaci dostupni svima, ne kršimo nikakve zakone ako snimimo samo ljude koji su se složili. A vjerujte mi, ti zakoni nisu baš jednostavni pa smo snimili samo sebe.

U sljedećim postovima mogli bi se dohvatiti samog koda ispod i pokazati kompletan projekt izrađen u Keras-u, kao i detekcije lice (i identita) ljudi.

Cilj ovog je isti kao i sa drugim postovima, pokazati ljudima mogućnosti današnje tehnologije. To ne znači da vas netko prati preko kamera, jer, ruku na srce, nikoga nije briga za vas (kao ni za mene), nego da je moguće to danas napraviti.

Da želim, spojio bih se na javne kamere grada i pokrenuo malo elaboratniji program koji bi detektirao vaša lica, vaše emocije i vaše interakcije. Pratio bih vaše kretanje i vaše navike. Napravio bih analizu vaših internet profila i detektirao bih vrstu vaše osobnosti. Našao bih vaše preference i prodavao bih vam ono što želite.

Ali, ja nemam koristi od toga. Što ne znači da netko drugi to ne može napraviti. Kao što sam rekao, stvarnost je puno strašnija nego što možemo zamisliti.

Ako niste upoznati, preporučujem da pogledate i pročitate malo o tome što se zbiva u Kini i na koji način oni rješavaju probleme s kontrolom društva i novinarima (pravim novinarima, ne ovime danas što se naziva novinarstvo).

Ono što je ljudima strašno, je da će ih netko pratiti cijelo vrijeme i imati sve informacije o njima. Meni to nije toliko strašno, ako to vrijedi za sve podjednako.

Ja nemam baš puno toga za skrivati, i odmah bi potpisao da iste mjere vrijede za mene kao i za političare. Da je to tako, što mislite, koliko bi političara “palo” i da li svijet bio bolji ili lošiji na kraju? Ovakve mogućnosti tehnologije nisu niti dobre niti loše, to su samo alati koji donose puno moći u ruke onih koji ih kontroliraju, pitanje je samo kako će se na kraju koristiti, to je sve.

Problem je, naravno, što ljudi koji imaju pristup ovim podacima imaju i kontrolu nad takvim programima, pa je problem što je onda moć informacija neravnomjerno raspoređena. Ovo su teški problemi, ali zanimljivo je vidjeti što se događa kada jedna vlada pokuša napraviti nešto ravnopravno.

Neuralne mreže i arhitekture za prepoznavanje objekata

Za ovakve zadatke koristit ćemo neuralne mreže. Neuralne mreže su prilično moćan način da sustav nauči prepoznati slike, tekst, zvuk i ostale medije, koji se još nazivaju “nestrukturirani podaci”. Zovu se tako, jer… Pa, nemaju strukturu.

Struktura postoji unutar tih podataka, ali nije toliko jasna. Jasna je ljudima, jer su ljudi nevjerovano inteligentni i mogu vidjeti strukture (obrasce, ali nemojmo cjepidlačiti) duboko u stvarima koje nadilaze percepciju drugih bića (do neke mjere).

Posebno je duboka povezanost ljudi s jezikom, što nas čini nevjerojatno bogatim svjesnim bićima. Zamislite, ljudi mogu vidjeti nevidljivi jezik matematike i brojeva gledajući u objekte u svijetu oko nas i na temelju toga predvidjeti ponašanje tih istih objekata koje promatraju.

Interpretacija jezika i potraga za osnovnim elementima računala, strojeva koje obavljaju zadatke koje im mi kažemo (pomoću “jezika”) dovela je do bogate ideje električnih računala i programskih jezika, preciznih jezika kojima možemo opisati operacije u redoslijedu/vremenu i definirati nedvosmisleni značaj.

Iako se čini da je jezik ogromna razlika između nas i životinja, kada kažemo jezik, ne treba se ograničavati samo na zvukove koje proizvedemo svojim glasom i riječi koje napišemo (koje nisu zvučne, već vizualne, mi ih interpretiramo na “zvučan” način).

Ljudi koji su gluhi (i nijemi) i dalje mogu komunicirati, iako možda nikada nisu čuli zvukove. Jezik je onda nešto puno dublje od samo pojedinog medija komunikacije, te stoji kao vrhunac ljudske evolucije. Čini se da je jezik način na koji “razumijemo” ovaj svijet, a te mogućnosti dobili smo jer imamo nevjerojatan kapacitet mozga.

Ono što želim ovdje opisati je koliko su bogati naši interni svjetovi i koliko stvari mi vidimo kada pogledamo pojedinu sliku. Uzimamo to zdravo za gotovo jer cijeli život tako funkcioniramo, ali blagoslov koji imamo nadilazi ljudsko razumijevanje.

Iz istog tog razloga je jako teško računalu razumjeti jednu sliku i u slici pronaći značenje. Računalo obavlja jako specifične i nedvosmislene stvari koje mu mi kažemo i ne “razumije” ništa osim toga.

Baš zato neuralne mreže, algoritmi (mali programi), kopiraju kako ljudski mozak radi, koji se temelji na komunikaciji neurona. Zato se zovu neuralne mreže. Jer su to mreže umjetnih neurona koje smo jezikom “preveli” u svijet programa (vidite, opet jezik).

Njih ne programiramo precizno i specifično, već ima dajemo slike da iz njih uče, slično kao što to rade ljudi. Machine Learning (ML) je polje koje radi upravo to, pokušava pomoću određene skupine algoritama doći do računala koje uči pomoću primjera (podataka).

Iz slike mačke očekujemo da ćemo dobiti rezultat da je ML algoritam prepoznao mačku, ali ne da nužno moramo reći što je to mačka. Jer jednom kada pokušate doći do odgovora na pitanje “što je to mačka zapravo?” na jako precizan način, ljudski kapaciteti počinju se urušavati. Koliko god naše razumijevanje veliko, najlakša pitanja su ona koja imaju najteže odgovore. Njih uzimamo zdravo za gotovo i na njima temeljimo naše razumijevanje svijeta. Tako da naše razumijevanje svijeta nije ništa nego jedna velika iluzija, iako se koji puta čini tako stvarna.

U jednom praktičnijem pogledu na stvari, možemo zaključiti da je nama potrebna nekakva funkcija koja pretvara sliku u ono što se na toj slici nalazi, bez da znamo kako ta funkcija radi. To je jedan od tekućih problema neuralnih mreža i kompleksnijih ML algoritama, pošto čak i kada znamo koji je odgovor na pitanje “da li je to mačka?”, ne znamo kako smo došli do tog odgovora. Taj odgovor je, u najmanju ruku, koristan ako vas taj isti algoritam vozi po autocesti 200 km/h i lagani pomak volana može značiti smrt.

Generalnije, možemo reći da su neuralne mreže aproksimacije (jako kompleksnih) funkcija koje ne bismo mogli lako opisati pomoću ljudskih “ručnih” algoritama.

Vrsta neuralnih mreža koja se koristi u prepoznavanju slika naziva se CNN (Convolutional Neural Network). Konvolucije nisu konvulzije, iako slično zvuče, već su matematičke operacije koje se rade na slikama, kako bismo smanjili količinu potrebne moći računanja i dobili slične rezultate prepoznavanja slika, ali sa slabijim računalima.

MaskRCNN

Projekt koji možete koristiti kako biste pokrenuli ovo sami nalazi se ovdje.

Ili to, ili možete sami posložiti ovu arhitekturu u Keras/TF 2.0 ili PyTorch.

Postoji dosta različitih arhitektura koje možete koristiti za prepoznavanja objekata.  Ali prije nego uđemo u listu tih arhitektura i čemu one služe, možemo pogledati različite vrste prepoznavanja objekata.

Prepoznavati objekte možemo preko bounding box-ova (pravokutnik koji okružuje objekt). 

Isto tako, možemo prepoznavati objekte tako da iz segmentiramo (obojimo ih). Postoje dva primjera segmentacija, ‘semantic segmentation’ i  ‘instance segmentation’. Semantic segmentation ne razlikuje više istih objekata na slici kao različite, dok instance segmentation to radi – ako postoji više osoba na slici, instance segmentation to prepoznaje.

Da damo neki konkretni primjer, evo slike mene nakon previše kava i previše pokušaja da ostanem budan:

Ako provrtimo to kroz MaskRCNN, možemo vidjeti oba primjera označavanja slika, bounding box i segmentacije (“instance segmentation”):

Kao što vidimo, mreža je 99.9 % sigurna da je to osoba na slici. Skoro pa sam i ja siguran da je to osoba na slici. Ali pošto se znam, imam svojih sumnji.

Slika oko sebe ima taj pravokutnik koji je bounding box i imamo preciznije obojeno lice što je primjer segmentacije.

Mask R-CNN je baziran na “Faster R-CNN” arhitekturi, koja vraća te pravokutnike oko objekta kojeg je detektirala.

“Faster R-CNN” prvo koristi CNN da izvuče zanimljive značajke slike.

Te značajke se onda proslijede u jednu mrežu koja se zove Region Proposal Network (RPN) koja vraća listu kandidata objekata s pravokutnicima. I na kraju, ti kandidati se šalju u sloj za klasifikaciju i izlaz pravokutnika za objekte.

Priča je puno šira od ovoga i ostavljamo je za jedan drugi put gdje možemo ući u malo više detalja oko ovoga. Jasno mi je da ljudi već kolutaju očima i da ih preveliki detalji ne zanimaju.

Analiza video snimki

Na snimci možete vidjeti dvije budale (Matiju i mene) kako šeću forumom u Puli, najprometnijem dijelu grada. Snimano je baš na forumu jer ljudi tamo prolaze svakog trenutka. Trebalo nam je 40 minuta da uhvatimo ovu snimku upravo zato što ljudi stalno prolaze.

Zelenom bojom obojeni su pravokutnici u kojima su prepoznati ljudi (Matija i ja) a iznad tih pravokutnika nalazi se postotak koliko je neuralna mreža sigurna da su to ljudi.

Vidjet ćete da prepoznavanje nije idealno i da ima trenutaka kada taj pravokutnik nestane. To se dogodi iz više razloga. Jedan od razloga je što je potrebna sigurnost prepoznavanja objekta viša od 90%. Drugim riječima, ako neuralna mreža nije više od 90% sigurna da je tamo osoba, neće je niti označiti. Isto tako, rezolucija bi idealno bila veća, a i mi smo dosta daleko od kamera te smo prilično sitni na snimci. Postoji još jedan razlog, a to je poseban trening i fino podešavanje neuralne mreže isključivo na prepoznavanje osoba.

Link i suglasnost za video snimke dobili smo od:

www.livecamcroatia.com/hr

www.istralivecam.hr

Ovim putem zahvaljujemo im na pomoći.

Zaključak

Budućnost je bliže nego što možemo zamisliti.

Moć nije toliko sirova koliko ljudi misle, prava moć je elegantna i suptilna. Nije važan onaj tko viče, nego onaj koji kaže nešto pametno. Tako i s ovom tehnologijom – većina ideja oko toga kako se ona koristi je primitivna.

Roboti koji hodaju s puškama nisu potrebni ako znam kako ću vam promijeniti mišljenje. 5G tornjevi nisu strašni koliko zbog mogućnost da će se preko njih moći stream-ati svaki video iz svakog grada u svakom trenutku te da će biti moguće pratiti vas bez stanke.

Manipulacija virusima nije potrebna ako mogu manipulirati vašim životima, a nije mi potreban nikakav čip da bih vas svugdje pratio. Također, podsjećam da uređaj za praćenje svojevoljno nosite u svom džepu i koristite ga za gledanje mačaka i širenje vlastitih teorija na Facebooku.

Probudite se, ljudi, iz glupavih snova koje ste usnuli i pogledajte novo danas, koje je bogatije i strašnije nego bilo kakva vaša primitivna ideja o stvarnosti.

Probudite se i prestanite lupetati gluposti uokolo. Roboti s puškama, čipiranje, 5G tornjevi i manipulacija virusima ideje su primitivca. Prava moć je u rukama onih koji posjeduju informacije!

 

 

P.S. Ako vas zanima više o tome kako se prepoznavanje u stvarnom vremenu ponaša i koji su izazovi, toga smo se dotakli s projektom autonomnog vozila “Mini Tesla”.