U Visage Technologiesu monotono ne postoji - Radi se u industrijama od kozmetičke – do automobilske - Android

Get it on Google Play

U Visage Technologiesu monotono ne postoji - Radi se u industrijama od kozmetičke – do automobilske - Android

Tehnologija praćenja, analize i prepoznavanja lica može se primijeniti na mnoge industrije, a švedsko-hrvatski Visage Technologies fokusirao se na dvije specifične. Saznali smo kako ih je to usmjerilo na dva poslovna modela - agencijski i proizvodni te kako unutar njih izgleda razvoj "cutting edge" rješenja iz područja računalnog vida.

Svijet se pomalo primiče nečemu što će nas više podsjećati na znanstvenu-fantastiku nego na našu svakodnevicu. Tehnologija koja analizira, prati i prepoznaje kretnje lica bit će jedna od ključnih sastavnica tih promjena. A u našem IT susjedstvu nalazi se tvrtka koje već radi iznimne stvari u području.

Visage Technologies je švedsko-hrvatska IT tvrtka koja je nastala na temeljima istraživačkih radova i prijateljstva osnivača na švedskom Sveučilištu u Linköpingu. Tako su 2002. umjesto početnog kapitala, su-osnivači Igor Pandžić i Jörgen Ahlberg uložili u tvrtku svoje intelektualno vlasništvo – softver za animaciju i praćenje lica, a njihov mentor, prof. Robert Forchheimer, stavio je na raspolaganje svoje iznimno poslovno iskustvo i uložio 5000 SEK – jedino financijsko ulaganje u tvrtku ikada.

Od tada do danas nije prestao rast tvrtke. Prije 6 godina otvorena je podružnica u Zagrebu, u zadnje četiri godine se stalno uvrštavaju na Deloitte liste brzo-rastućih tvrtki, a danas Visage Technologies broji više od 100 ljudi koji rade u njihove dvije glavne divizije –  Automotive i Face Technology.

Više o okolnostima razvoja rješenja kroz ta dva ogranka u Visage Technologiesu rekao mi je Gordan Kreković, stručnjak za digitalne proizvode s doktoratom iz računalnih znanosti i dugogodišnjim IT iskustvom, koji je preuzeo CEO poziciju nedugo nakon što se pridružio Visage Technologiesu 2017.

Foto: Mario Poje

Kako je došlo do fokusa na automobilsku i – kozmetičku industriju?

Glavni proizvod Visage Technologiesa danas je visage|SDK, odnosno softverska komponenta za praćenje, analizu i prepoznavanje lica koja primjenu nalazi u brojnim industrijama, ističe Gordan, od marketinških kampanja, preko igara, potrošačke elektronike, sigurnosti i nadzora, biometrijske identifikacije, zdravstva, robotike i različitih nišnih mobilnih aplikacija – do automobilske industrije.

Nakon niza godina uspješnog rada s nekoliko stotina klijenata iz različitih industrija, shvatili smo da se važnost pojedinih funkcionalnosti i karakteristika proizvoda razlikuje od niše do niše, ali da je isto tako potreban različit pristup u prodaji i marketingu ovisno o industriji. Zbog toga smo odlučili, uz kontinuirani razvoj na našoj osnovnoj tehnologiji, odabrati nekoliko niša kojima želimo posvetiti posebnu pažnju.

Taj je odabir zapravo bio strateška odluka, dodaje Gordan, a temeljili su je ne samo na percipiranom interesu tržišta, nego i na vlastitim kompetencijama te prikladnosti tehnologije i prodajnih kanala.

Prvi izbor bila je automobilska industrija za koju naš visage|SDK ima brojne prednosti u usporedbi s konkurencijom zbog robusnosti, kvalitete i portabilnosti na ugradbene računalne sustave. Praćenje lica ima brojne primjene u kabini vozila gdje služi kao ključna komponenta sustava za detekciju umora i distrakcije vozača.

Kao drugu nišu odabrali smo kozmetičku industriju te smo razvili makeup|SDK koji omogućava iscrtavanje virtualne šminke na temelju zadanih parametara (kao što su boja, prozirnost, područje prekrivanja te specifične efekte poput matirajućeg ili sjajnog).

Od R&D-a do razvoja proizvoda i rješenja za klijente

Face Technology divizija u Visage Technologiesu razvija vlastite proizvode vezane uz tehnologiju za praćenje, analizu i prepoznavanje lica. Fokus je na proizvodima, dodaje Gordan, no također nude i usluge implementacije njihovog SDK-a u cjelovita rješenja te mogućnost prilagodbe SDK-a na zahtjev.

Primijetili smo da nam takvih projekti donose znanje i iskustvo, otvaraju nam specifične niše, a ujedno ih kombiniramo s licenciranjem SDK-a. Zbog toga rado kombiniramo aktivnosti istraživanja i razvoja na vlastitom proizvodu s projektnim razvojem za klijente, pri čemu ipak nešto više težine stavljamo na vlastiti proizvod. Taj omjer varira, no oko dvije trećine vremena smo posvećeni vlastitom proizvodu.

Unutar Face Technology divizije, Visage Technologies je razdijelio timove na tri kategorije.

Gordan: “Globalni zamah umjetne inteligencije povećava i potrebu za tehnologijama koje razvijamo u našoj Face Technology diviziji. Neke od današnjih primjena našeg proizvoda prije nekoliko godina nismo mogli niti zamisliti.” Foto: Mario Poje

Prva je kategorija istraživanje i razvoj u okviru čega prate najnovije spoznaje iz područja strojnog učenja i računalnog vida, razvijaju i poboljšavaju vlastite algoritme, isprobavaju nove ideje, održavaju infrastrukturu za treniranje i validaciju modela te osiguravaju adekvatne skupove podataka, objašnjava Gordan.

Nakon što postignemo zadovoljavajuće rezultate u R&D fazi, potom nastupa naš Product tim koji se brine o tome da algoritmi budu zapakirani u efikasnu, lako primjenjivu i dobro dokumentiranu programsku komponentu koju isporučujemo za različite operacijske sustave i sklopovske arhitekture, uključujući mobilne operacijske sustave (Android i iOS), web aplikacije te ugradbene sustave od kojih neki imaju dedicirane akceleratore za duboko učenje. Raznolikost podržanih platformi, kao i tendencija za postizanjem efikasnog SDK-a s relativno malenim zahtjevima za procesorskom snagom i memorijom otvara zanimljive inženjerske izazove.

Treća kategorija aktivnosti vezana je uz projektni razvoj za klijente te razvoj specifičnih rješenja. Time se bavi Solutions tim koji se uspješno snalazi s velikim brojem tehnologija, od računalne grafike i 3D modeliranja do razvoja cjelovitih mobilnih, desktop i web aplikacija s odgovarajućom serverskom podrškom.

Lepeza programskih jezika

Više o razvoju unutar Face Technology divizije rekao mi je njezin voditelj, Petar Stojanac.

Visage|SDK razvija se u programskom jeziku C++, navodi, no budući da se radi o višeplatformskom proizvodu, inženjeri u timu trebaju pokrivati i druge programske jezike kao što su C#, Javascript i Swift. Petar dodaje:

Python se koristi za prototipiranje i razvoj infrastrukture za razvoj algoritama strojnog učenja kroz alat PyCharm. Razvoj neuronskih mreža podržan je kroz razvojno okruženje PyTorch dok se u kasnijim fazama koristi Intelov OpenVINO i Tensorflow. Tipično radimo na operativnom sustavu Windows pritom koristeći Docker u svrhu standardizacije razvojnog okruženja i razvoja za platforme poput Linuxa, Androida, iOS-a ili Weba. Programskim kodom upravljamo kroz git te se oslanjamo na Gitlab za međusobni pregled koda (code review) i procese kontinuirane integracije i isporuke proizvoda.

Automobilska budućnost

Njihova Automotive divizija formirana je 2016. godine za potrebu suradnje sa švedskim proizvođačem tehnologije za naprednu podršku vozačima (ADAS) i aktivnu sigurnost u automobilskoj industriji. Ukratko, Visage Technologies zajednički s timovima klijenta razvija sustav računalnog vida koji obrađuje sliku iz frontalne okoline vozila te detektira i prati druge sudionike u prometu, objekte i elemente okoline.

Informacije takvog sustava mogu se koristiti za različite primjene, dodaje Gordan, one uključuju automatsko sigurnosno kočenje, održavanje trake, adaptivni tempomat, prepoznavanje znakova i semafora te za određene razine autonomne vožnje. Takva se tehnologija već ugrađuje u vozila koja viđamo na cestama od kojih među novijima javno smiju izdvojiti Mercedes S klasu, električni Volvo XC40, Subaru Levorg, Cadillac Escalade i futuristički, potpuno električni Polestar 2.

No da bi ta tehnologija došla do tih vozila i odradila svoj posao, stoji puno inženjerskih izazova, objašnjava Gordan:

Osim vizualne detekcije i kategorizacije objekata, jedan je od izazova i procjena njihove pozicije, orijentacije, brzine i akceleracije isključivo iz slike u stvarnom vremenu. Takva je procjena važna bilo da je vizijski sustav (op.a. sustav računalnog vida) jedini izvor informacija za funkcionalnosti napredne podrške vozačima, bilo da se informacije iz vizijskog sustava povezuju s informacijama iz drugih senzora (takozvana fuzija signala) jer se jedino pomoću točnih procjena o pojedinim stvarnim objektima može prepoznati da se radi o istom objektu detektiranom s više senzora.

Timovi Automotive divizije korištenjem računalnog vida, strojnog učenja te drugih tehnika iz računarstva i automatike sudjeluju u osmišljavanju, razvoju i testiranju jednog takvog kompleksnog sustava.

Ipak, napominje kako je izgradnja povjerenja između njih i klijenta utjecala na to da danas s njima potpuno ravnopravno sudjeluju u aktivnostima istraživanja i razvoja na tom kompleksnom proizvodu.

Kako izgleda razvoj takvog rješenja za automobilsku industriju?

Gordan: “Za razliku od laboratorijskih vježbi iz strojnog učenja gdje dobijete spremne podatke s kojima trebate istrenirati i validirati klasifikator, u razvoju produkcijskog proizvoda stvarima se pristupa puno šire.” Foto: Mario Poje

To je jedno zanimljivo i integralno iskustvo, iskreno će Gordan. Naime, kaže, za razliku od laboratorijskih vježbi iz strojnog učenja gdje dobijete spremne podatke s kojima trebate istrenirati i validirati klasifikator, Visage Technologies u razvoju produkcijskog proizvoda pristupa puno šire. Primjerice…

Sudjelujemo u formulaciji zahtjeva, specificiramo arhitekturu budućeg rješenja, zahtjeve razlažemo po slojevima arhitekture te istovremeno pripremamo testove, komuniciramo s timovima za prikupljanje i označavanje podataka, održavamo interne alate za evaluaciju i simulaciju, isprobavamo različite pristupe, treniramo i validiramo modele, pišemo produkcijski kôd, pripremamo i automatiziramo testove te na kraju ponekad i sjedamo u automobile te provjeravamo kako naše nove funkcionalnosti rade na testnim stazama.

Na takvu raznolikost posla upozoravaju kandidate na razgovorima za posao jer su svjesni da to ne mora svima podjednako odgovarati. No, dodaje i kako članovima Automotive divizije raznolika iskustva pomažu razumjeti cjelovitu sliku i brže napredovati u poslu.

Takav nas je pristup doveo u poziciju da značajno možemo doprinositi proizvodu te se osjećati uključeno u sve uspjehe koje proizvod postiže.

A upravo zahvaljujući konstantnom rastu danas Automotive divizija broji 80-ak članova, čime je postala i većinska divizija u Visage Technologiesu.

Široka primjena

Iako su fokusirani na automobilsku i kozmetičku industriju, plan im je zadržati mjesto kao jednog od vodećih pružatelja tehnologije za praćenje, analizu i prepoznavanje lica – klijentima iz različitih niša.

Klijenti Visage Technologiesa dolaze iz različitih industrija, tako da zbilja imaju u arhivi raznolike slučajeve primjene svoje tehnologije. Međutim, zbog toga i proces implementacije ovisi od klijenta do klijenta. Primjerice, marketinške i development agencije često samo licenciraju njihov visage|SDK te unutar nekoliko mjeseci imaju gotove aplikacije za brendove kao što su Lufthansa, Coca Cola, Disney, McDonald’s i Škoda.

S druge strane, imaju klijente za koje prilagođavaju svoje algoritme njihovim specifičnim potrebama, dodaje Gordan:

Tako smo, primjerice, za Yulu Toys prilagodili naš algoritam za praćenje lice tako da radi na licima lutaka. Za Mobotixove pametne nadzorne kamere trebali smo osposobiti visage|SDK da radi na specifičnom ugradbenom sklopovlju, a za Imaforove termalne kamere poboljšati kontinuitet praćenja pojedine osobe u svrhu preciznijeg mjerenja tjelesne temperature.

Primijetili smo da pojedine industrije nose svoje posebnosti pa su tako u automobilskoj industriji prodajni ciklusi prilično dugi te često uključuju izradu konceptnih prototipa prije dobivanja projekta. Takva raznolikost među klijentima čini naš posao zanimljivim, no također stvara i dosta izazova u prioritiziranju i planiranju.

Uče, implementiraju pa i sami pišu znanstvene radove

A osim operativnih izazova, područje tehnologija iz sfere umjetne inteligencije, zahtijeva i mnogo učenja i istraživanja. Iako, primjerice, strojno učenje kao računarsku disciplinu poznajemo već više desetaka godina, uzlet strojnog učenja i povezanih AI tehnologija doživjeli smo tek unazad proteklog desetljeća otkako imamo hardverske kapacitete da ostvarimo njihove potencijale. Taj uzlet su pratile rekordne brojke povezanih akademskih publikacija te sve veća konkurencija.

Stoga me nije začudilo kad sam na njihovom blogu saznala da su prošle godine učili ukupno 1350 sati. Neophodno je to kako bi ostali u koraku sa svime i nastavili biti kompetitivni.

Već i sam rad na razvojno-istraživačkim aktivnostima predstavlja vrijedan oblik učenja. Nerijetko se događa prije razvoja vlastitog rješenja posežemo za znanstvenom literaturom, pokušavamo shvatiti postojeće dosege, reproducirati rezultate te potom tražiti poboljšanja ili nove pristupe.

Uz to, u firmi zagovaramo kulturu učenja, istraživanja i dijeljenja znanja. Imamo knjižnicu, edukacijske budžete te takozvani Znanstveni odbor koji promiče istraživačko i akademsko djelovanje. Odbor organizira sudjelovanje na znanstvenim konferencijama te pruža podršku kolegama koji odlučuju upisati doktorat ili studentima koji svoj diplomski rad žele pisati uz vođenje iz naše firme.

Osim toga, nastoje pronaći načine i kako podijeliti znanje. Dosad je Visage Technologies sudjelovao na 50-ak konferencija, a njihovi su članovi objavili desetak znanstvenih radova usko vezanih uz područje rada firme uz višestruko veći broj onih koji nisu direktno povezani. Krajem veljače organizirali su i cjelodnevnu online konferenciju s 8 predavanja njihovih kolega o računalnom vidu, a Gordan dodaje kako im ne nedostaje entuzijazma za buduće slične događaje.