Skladiščni sistem za verifikacijo predmetov s pametnimi ocali Janez KriZaj, Janez Pers in Vitomir Struc Fakulteta za elektrotehniko, Univerza v Ljubljani E-posta: janez.krizaj@fe.uni-lj.si Warehouse system for object verification with smart glasses This paper presents a warehouse product verification system that helps warehouse staff in performing their work. The proposed system sequentially captures the pictures of the objects that the warehouse worker encounters in his work and verifies if the object in the picture is the one that the worker is supposed to find in the warehouse. The system uses Android-powered smart glasses to capture image data, while the computationally intensive verification tasks are carried out on the server computer and are implemented using recent deep learning techniques. By doing so, the system is able to process images in near real-time and achieves high verification accuracy as is demonstrated by the performed experiments. 1 Uvod V članku predstavimo podporni sistem, ki skladiščnim delavcem omogoča zanesljivejše in po možnosti hitrejše izvajanje svojih nalog. Pri obstoječem načinu dela v skladiščih delavec v informacijskem sistemu najprej poišče lokačijo določenega produkta v skladišču, na dotični lokačiji pa nato z ustreznim čitalnikom preveri ali gre res za iskani produkt. Razviti podporni sistem pa s pomočjo pametnih očal zajema sliko objektov, s katerimi se srečuje skladiščni delaveč pri svojem delu, in preveri ali gre za pravi objekt, t.j. objekt, ki naj bi ga delaveč v skladišču poiskal. Z načrtovano tehnologijo je torej v postopek vpeljan avtomatiziran pročes verifikačije produktov, kije izveden z računalniško-podprto tehnologijo razpoznavanja objektov iz slikovnih podatkov, zajetih s pametnimi očšali. Glavni izziv in razvojni problem, s katerim smo se srečali pri udejanjenju podpornega sistema je problem verifikačije objektov na podlagi slikovnih podatkov, zajetih s pametnimi očali. Pročesno verigo verifikačij-skega postopka smo sestavili iz klasičšnih gradnikov, kot je detektor objektov, modul za izračun značilk in modul za razvrščanje, pri čemer smo za detekčijo objektov in izračun značilk uporabili sodobne postopke, ki temeljijo na uporabi globokih nevronskih mrez. Zaradi relativno visoke račšunske zahtevnosti teh postopkov smo večji del pročesne verige prenesli na streznik z grafično kartičo, ki podpira hitro izvajanje in učenje globokih mrez, pametna očala Vuzix, na katerih tece operacijski sistem Android, pa nam služijo le za zajem in prenos slike na strežnik ter prikaz rezultata verifikacije. Ob predpostavki dovolj hitre internetne povezave smo na ta nacin zagotovili sprejem povratne informacije, v obliki rezultata verifikacije in koordinat detekcijskega okna, v okvirno 0,2 s po tem, ko smo poslali sliko v obdelavo na streznik. 2 Implementacija podpornega sistema To poglavje vsebuje opis gradnikov in delovanje podpornega sistema za skladiščne delavce. 2.1 Nacin delovanja Demonstracijski sistem za predmet, ki ga demonstrator prime v roke izvede verifikacijo. Sistem pricne s poskusi razpoznavanja predmetov na zajetih slikah, ko skladišcnik z izbiro zelenega objekta na skladišcnem racunalniku sprozi postopek verifikacije. Od zacetka razpoznavanja se z dolocenim intervalom vzorcenja zajemajo slike in pošljejo v obdelavo na streznik. V primeru, da je istovetnost predmeta potrjena, se sistem ne odzove, v primeru, da sistemu istovetnosti predmeta ne uspe potrditi, pa sistem sprozi "alarm" in uporabnika opozori, da trenutno aktualen predmet, ne ustreza predmetu, ki naj bi ga skladišcnik poiskal. Ob vsakem "alarmu" demonstracijski sistem shrani tudi sliko zajetega predmeta za namene arhiviranja. 2.2 Zgradba sistema Kot je prikazano na sliki 1 je podporni sistem v grobem sestavljen iz treh delov: • Pametna ocala: Na pametnih ocalih tece spletna aplikacija, ki omogoca zajem slike z vgrajeno kamero ocal, prikaz slike na zaslonu ocal, pošiljanje slike v obdelavo na streznik v formatu JPEG, sprejem rezultata verifikacije iz streznika in prikaz rezultata vkljucno z detekcij-skim oknom na zaslonu ocal; • Strežnik: Ob sprejemu slike, streznik pošlje dano sliko skozi procesno verigo, zgrajeno iz klasicšnih gradnikov razpoznavalnega sistema, kot so modul za predobde-lavo slik, modul za izracšun znacšilk, modul za merjenje podobnosti in odlocanje. Streznik nato izracunan rezultat verifikacije in koordinate detekcijskega okna za vsako dobljeno sliko pošlje nazaj do pametnih ocal in ERK'2018, Portorož, 392-327 324 obenem arhivira slike pri katerih je prišlo do zavrnitve pri verifikaciji; • Skladiščni računalnik na katerem se izvaja registracija novih objektov v sistem in izbira objekta, ki ga Želimo verificirati. Sledeca podpoglavja vsebujejo podrobnejši opis naštetih sklopov razvitega sistema. —► Verifikacija, ■■■►£/čenje, --► Registracija (b) Frontalizirane slike stranic objekta. (c) Umetno tvorjene slike Slika 2: Postopek registracije in tvorjenja umetnih slik. Slika 1: Shematski prikaz podpornega sistema. 2.3 Registracija novih objektov v sistem Pri registraciji objekta v sistem, se predpostavlja, da imamo na voljo 6 slik vsake od stranic tega objekta. Ob prenosu vseh 6 slik stranic objekta na streznik, se na strezniškem delu sistema izvede še ucenje detektorja in razvršcevalnika na novo dograjeni ucni zbirki. Za ucinkovitejše ucenje smo dodali postopek samodejnega tvorjenja umetnih slik, ki temelji na izgradnji 3D modela objekta iz njegovih slik stranic in nam omogoca enostavno povecanje ucnega materiala. Postopek izgradnje 3D modela iz slik stranic zahteva, da pri postopku registracije v graficnem vmesniku rocno oznacimo vse štiri kote stranice na posamezni sliki, preostali koraki tvor-jenja slik in ucenja pa so samodejni. Na osnovi lokacije oznacenih kotov se s perspektivicno transformacijo izvede poravnava stranice v frontalno lego. Model danega objekta nato sestavimo iz frontaliziranih slik vseh 6 stranic objeta. Umetne slike, ki jih uporabimo za ucenje detektorja in razvršcevalnika, koncno tvorimo z rotacijo modela v 3D prostoru in dodajanjem razlicnih ozadij, kot prikazuje slika 2. 2.4 Detekcija objektov Za detekcijo objektov smo uporabili postopek Faster-RCNN [1], implementiran v knjiznici CNTK [2]. Omenjeni postopek uporablja za detekcijo objektov konvolu-cijske nevronske mreze (implementacija trenutno podpira mrezi VGG16 in AlexNet) in za ucenje potrebuje veliko ucnega materiala. Ker take kolicine ucnih slik nimamo na razpolago smo vzeli globoko mrezo, ki je bila vnaprej naucena na zbirki slik ImageNet in nato le doucili parametre mreze na lastni zbirki slik. Postopek se je izkazal za hitrega in ucinkovitega, z delezem detektiranih objektov preko 96% in povprecnim IOU (ang. intersection over union) enakim 0,78. Detekcijsko okno nam kasneje sluzi za kvadratni izrez podrocja, ki ga zahteva modul za izracun znacilk. 2.5 Izracun značilk Ker postopki globokega ucenja v zadnjih letih dosegajo visoke rezultate na podrocju racunalniškega vida, smo se odlocili, da izracun znacilk izvedemo s pomocjo globokih mrez. V eksperimentalni primerjavi (poglavje 3.2) se je izkazalo, da najvecjo ucinkovitost verifikacije zagotavljajo znacilke, ki jih dobimo z mrezo Resnet kot izhode iz predzadnje plasti nevronov (izpustimo zadnjo polno povezano plast). Iz tega razloga smo se odlocili, da za izracun znacilk nadalje uporabljamo mrezo Re-sNet. Znacilke izracunamo iz kvadratnega podrocja, ki zajema detekcijsko okno objekta, pri cemer smo preizkusili kakšen vpliv ima na koncno uspešnost verifikacije ohranitev oz. odstranitev ozadja izven detekcijskega okna (poglavje 3.3). 2.6 Izračun podobnosti in odločanje Dani objekt, ki ga posnamemo s kamero pametnih ocal, primerjamo z izbranim registriranim objektom, ki smo ga predhodno izbrali v uporabniškem vmesniku. Na podlagi mere podobnosti med znacšilkami danega objekta in znacilkami izbranega registriranega objekta se izvede sprejem oz. zavrnitev objekta, glede na to ali je izracunana podobnost vecja ali manjša od v naprej nastavljenega praga. Dolocitev praga in preizkus razlicnih vrst mer podobnosti eksperimentalno ocenimo v poglavju 3.4. 2.7 Uporabniški vmesnik Komunikacija uporabnika s sistemom je omogocena preko vec uporabniških vmesnikov. Uporabniški vmesnik na pametnih ocalih je izveden v obliki spletne aplikacije, ki jo zazenemo v internetnem brskalniku ocal in omogoca tako zajem slike kot prikaz rezultata verifikacije in prikaz detekcijskega okna na dani sliki objekta. Na ta nacin je zajem neodvisen od operacijskega sistema in razpolozšljivosti razvojnega kompleta (SDK). Na skladišcnem racunalniku dostopamo do vec vmesnikov, od katerih eden omogoca registracijo objektov v sistem, drugi vmesnik nam omogoca izbiro objekta za katerega 393 želimo izvesti verifikacijo, tretji vmesnik pa predstavlja spletni arhiv slik z zavrnjenimi objekti. Vmesniki so implementirani v jeziku HTML5, CSS in JavaScript. 2.8 Komunikacijski kanali Demonstracijski sistem deluje na treh enotah, ki vključujejo strezniski računalnik, kjer se izvaja glavnina procesa verifikacije, pametna očala s pripadajočo spletno kamero ter skladišcni racunalnik na katerem dosto-pamo do vmesnika za registracijo in izbiro objekta. Ko sistem deluje v nacinu verifikacije je potrebno sprotno pošiljanje podatkov med pametnimi ocali in skladišcnim racunalnikom na eni strani ter streznikom na drugi strani. V ta namen smo z uporabo spletnih vticnic (ang. websockets) implementirali komunikacijska kanala, ki omogocata obojesmerni prenos podatkov. Komunikacijski kanal med vmesnikom pametnih ocal in streznikom skrbi za prenos slike v smeri do streznika in za prenos rezultata verifikacije ter koordinat detekcijskega okna v obratni smeri. Na komunikacijskem kanalu med vmesnikom za izbiro objekta in streznikom pa se v smeri proti strezniku vrši prenos oznake izbranega objekta, v obratni smeri pa tece prenos rezultata verifikacije. 2.9 Programska oprema Jedro podpornega sistema, t.j. proces verifikacije, ki tece na strezšniku, smo implementirali v programskem jeziku Python, pri cemer smo si pomagali z razlicnimi programskimi knjiznicami. S pomocjo knjiznice CNTK smo izvedli detekcijo objektov, knjiznici Tensorflow in Keras smo uporabili pri izracunu znacilk, knjiznica Mayavi nam sluzi za 3D modeliranje objektov v procesu registracije, knjiznico Sklearn pa smo uporabili pri merjenju podobnosti med vektorji znacilk. Pri udejanjenju komunikacijskih kanalov s streznikom pa smo uporabili knjiznico Websockets. Spletni uporabniški vmesniki so implementirani s pomocšjo programskih jezikov HTML5, CSS in JavaScript. 3 Eksperimenti V tem poglavju predstavimo rezultate izvedenih eksperimentov. S pomocjo pridobljenih eksperimentalnih rezultatov smo nastavili oz. izbrali dolocene odprte komponente sistema, pri cemer smo tezili k cim vecji ucinkovitost verifikacije, ki smo jo merili v obliki deleza TPR pri 0,1% FPR. V okviru testiranja smo preverili tudi ucšinkovitost delovanja posameznih postopkov, ki smo jih integrirali v sistem, kot tudi delovanje prototipnega sistema kot celote. Eksperimente smo izvedli na lastni zbirki slik kosmicev, nekatere preliminarne eksperimente pa smo naredili na zbirki kosmicšev, ki je rezultat diplomskega dela iz [3]. Ker sistem deluje v nacinu verifikacije, smo uspešnost delovanja prikazali v obliki krivulj ROC (ang. receiver operating characteristic). 3.1 Snemanje lastne zbirke slik Za potrebe evalvacije zanesljivosti razvitega sistema smo zbrali lastno zbirko slik 8 razlicnih škatel kosmicev, s katerimi smo poskusili imitirati okolje v katerem deluje skladiščni delavec. Zbirka vsebuje testno množico in galerijsko množico. Testna množica vsebuje približno sto slik vsake od škatel, pri cemer smo ob njihovem zajemu težili k temu, da orientacija škatel na slikah cim bolj vari-ira. Galerijsko množico poleg 6 slik stranic vsakega od 8 registriranih predmetov, sestavlja 1000 umetnih slik vsakega od objektov, ki smo jih tvorili po postopku opisanem v poglavju 2.3. 3.2 Izbira globoke mreže za izračunu znacilk V nižu eksperimentov, opisanem v tem raždelku, smo preižkusili uspesšnost delovanja pri uporabi ražlicšnih prednaucenih globokih mrež, ki smo jih uporabili pri ižracunu žnacilk. Globoke mreže potrebujejo velike kolicine podatkov ža ucinkovito ucenje, ki je praviloma racunsko žahtevno in posledicno casovno potratno. Težavam pri ucenju mrež smo se žato ižognili ž uporabo mrež, ki so bile predhodno naucene na velikem številu genericnih slik. Osredotocili smo se na primerjavo šestih pred-naucenih mrež iž knjižnice Keras, ki so bile naucene na žbirki ImageNet [ ]. Te mreže so VGG16 in VGG19 [ ], Inception [ ], Xception [ ], ResNet [ ] in MobileNet [ ]. Režultati teh eksperimentov so prikažani na sliki 3 iž katere lahko ražberemo, da najvišjo uspešnost verifikacije dosežemo ž mrežo ResNet. V vseh nadaljnjih eksperimentih smo žato ža ižracšun žnacšilk uporabili globoko mrežo ResNet. Receiver operating characteristic o.o -1-1-1-1- 0.0 0.2 0.4 0.6 0.0 1.0 False Positive Rate Slika 3: Uspešnost verifikacije ob uporabi različnih vrst prednaucenih globokih mreZ. 3.3 Definicija območja pri izračun znacilk Globoka mreza ResNet, ki jo uporabljamo pri izračunu znacilk, zahteva na svojem vhodu sliko kvadratne oblike, dimenzije 229 x 229. Detekcijski pravokotnik praviloma ni kvadratne oblike, ampak ima poljubno razmerje med višino in dolzino, kije odvisno od oblike objekta na sliki. Obravnavali smo dve moznosti izvedbe kvadratnega izreza pravokotnega področja detekcije: i) kvadratni izrez, kjer ohranimo ozadje in ga po potrebi ekstrapoliramo, ce je detekcijsko okno blizu roba slike (slika 4b), ii) kvadratni izrez, kjer vrednosti slikovnih elementov izven detekcijskega okna nastavimo na doloceno konstantno vrednost (crno podrocje na sliki 4c). Izkazalo se je, da - mobilenet (AUC = 0.94) - resnet {AUC = 0.97) vggl6 (AUC = 0.92) - vggl9 (AUC = 0.94) inception (AUC = 0.93) - xception (AUC = 0.86) 394 slednji postopek prinese boljšo učinkovitost verifikacije (slika 5) v primerjavi s postopkom, kjer ohranimo ozadje. (a) (b) (c) Slika 4: Določitev kvadratnega območja pri izračunu značilk: a) Vhodna slika z detekčijskim oknom, b) kvadratni izrez brez odstranitve ozadja, č) kvadratni izrez z odstranitvijo ozadja. Receiver operating characteristic False Positive Rate Slika 5: Uspešnost verifikačije glede na uporabljen postopek izreza. 3.4 Izbira mere podobnosti in razvrsčevalnika Pri izbiri mere podobnosti v modulu za odločanje smo, poleg iskanja najblizjega soseda iz vsakega razreda z uporabo Evklidove in kosinusne razdalje, preizkusili še merjenje podobnosti z metodo podpornih vektorjev [10] (ang. support večtor mačhine, SVM), s katero smo, kot je razvidno iz slike 6, dosegli znatno izboljšanje uspešnosti verifikačije. Odločitveni prag smo določili glede na operačij-sko točko, ki smo jo izbrali pri 0,1% napačnih sprejemov (ang. false positives). V tej točki je z uporabo metode podpornih vektorjev uspešnost verifikačije presegla 80% pravilnih sprejemov (ang. true positives). 4 Zaključek V članku smo predstavili demonstračijski sistem za skladiščne delavče, ki smo ga razvili v okviru projekta GOSTOP. Podporni sistem omogoča pohitritev opravil skladiščnih delavčev in enostavnejše preverjanje istovetnosti produktov v skladiščih. Opisali smo osnovne značšilnosti razvite storitve, orisali njeno arhitekturo in funkčionalnost ter eksperimentalno ovrednotili njeno delovanje. Pomembna lastnost omenjenega sistema je, da ga je mozno uporabiti z vsako napravo, ki podpira novejše spletne brskalnike (v našem primeru Firefox). Slika 6: Uspešnost verifikacije pri različnih postopkih merjenja podobnosti. Zahvala Raziskovalno delo, ki je pripeljalo do predstavljenih rezultatov, je bilo delno financirano s strani ARRS (raziskovalna programa Metrologija in biometrični sistemi, P2-0250, in Računalniški vid, P2-0214) ter programa GOSTOP (št. pogodbe C3330-16-529000), financiranega s strani RS-MIZS in EU-ESRR. Literatura [1] R. Girshick, "Fast R-CNN," v Proc. of the 2015 IEEE Int. Conf. on Comp. Vis. (ICCV), ser. ICCV '15. Washington, DC, ZDA: IEEE Computer Society, 2015, str. 1440-1448. [2] F. Seide in A. Agarwal, "CNTK: Microsoft's Open-Source Deep-Learning Toolkit," v Proc. of the 22nd ACM SI-GKDD Int. Conf. on Knowledge Discovery and Data Mining, ser. KDD '16. New York, NY, ZDA: ACM, 2016, str. 2135-2135. [3] U. Brodnik, "Detekcija artiklov na prodajnih policah z racunalniškim vidom," Univerza v Ljubljani, Fakulteta za elektrotehniko, zv. Diplomsko delo, 2012. [4] J. Deng et al., "ImageNet: A large-scale hierarchical image database," v 2009 IEEE Conf. on Comp. Vis. and Pat. Rec., Jun. 2009, str. 248-255. [5] K. Simonyan in A. Zisserman, "Very Deep Convolutio-nal Networks for Large-Scale Image Recognition," CoRR, 2014. [6] C. Szegedy et al., "Going Deeper with Convolutions," v 2015 IEEE Conf. on Comp. Vis. and Pat. Rec. (CVPR), Jun. 2015, str. 1-9. [7] F. Chollet, "Xception: Deep Learning with Depthwise Separable Convolutions," v 2017 IEEE Conf. on Comp. Vis. and Pat. Rec. (CVPR), Jul. 2017, str. 1800-1807. [8] K. He, X. Zhang, S. Ren, in J. Sun, "Deep Residual Learning for Image Recognition," v 2016 IEEE Conf. on Comp. Vis. and Pat. Rec. (CVPR), June 2016, str. 770778. [9] A. G. Howard et al., "MobileNets: Efficient Convoluti-onal Neural Networks for Mobile Vision Applications," CoRR, 2017. [10] C. Cortes in V. Vapnik, "Support-Vector Networks," Mach. Learn., zv. 20, št. 3, str. 273-297, Sept. 1995. 395