ERK'2021, Portorož, 125-129 125 Aplikacija za iskanje podobnih slikarskih del Luka Konˇ car 1 , Rok Caserman 2 , Gregor Brantuˇ sa 3 , Matevˇ z Andolˇ sek Peklaj 4 , as. Blaˇ z Meden 5 , izr. prof. dr. Narvika Bovcon 6 1;2;3;4;5;6 Fakulteta za raˇ cunalniˇ stvo in informatiko UL E-poˇ sta: 1 luka.koncar@gmail.com, 3 gb6370@student.uni-lj.si, 5 Blaz.Meden@fri.uni-lj.si, 6 Narvika.Bovcon@fri.uni-lj.si Abstract We created a web application in Python, which allows the user to upload an image and then uses it to find simi- lar artworks from a database of paintings made by some of the most influential painters of all time. The user can choose from a variety of criteria for comparison: colour hue, saturation, value, normalized cross-correlation, edg- es, convolutional neural networks AlexNet and VGG16, color layout descriptor, edge histogram descriptor and a bag-of-words model. These criteria are described and discussed in the following paper, as are the algorithms that are used to implement them. Different algorithms work better or worse depending on the user uploaded image. Towards the end we suggest some functional im- provements, such as identifying the author of the uploaded image and the art period in which it was likely created. Aside from the functional improvements we also suggest some that would increase the overall quality of the query, either by making it faster or more robust. 1 Uvod Izdelali smo spletno aplikacijo, ki uporabniku omogoˇ ca nalaganje poljubne slike, nato pa iz podatkovne zbirke slikarskih del poiˇ sˇ ce podobne umetnine glede na izbrani kriterij. V nadaljevanju bomo opisali podobne aplikacije, ki ˇ ze obstajajo, tehnologije, ki smo jih uporabili, razliˇ cne kriterije, ki jih uporabnik lahko izbere za primerjavo slik in izgled aplikacije. Na koncu pa bomo predlagali more- bitne izboljˇ save. 2 Pregled podroˇ cja Naˇ s projekt spada v podroˇ cje prepoznave in klasifikacije slik, v katerem ˇ ze obstaja vrsta razliˇ cnih aplikacij. Ome- nili jih bomo nekaj, ki podobno kot naˇ sa v ozadju upora- bljajo podatkovno zbirko skupaj z razliˇ cnimi algoritmi za klasifikacijo ali iskanje podobnih slik, kot jih je naloˇ zil uporabnik. Quick, Draw! je zabavna aplikacija, ki uporabniku najprej pokaˇ ze besedo ali besedno zvezo, nato pa ima ta 20 sekund ˇ casa, da to skicira z miˇ sko. Cilj je, da raˇ cunalnik pravilno ugotovi, kaj je narisal uporabnik. Za prepoznavo skic aplikacija uporablja rekurenˇ cno nevron- sko mreˇ zo (angl. recurrent neural network). Ta nevronska mreˇ za se je uˇ cila na ogromni podatkovni zbirki, ki se je sproti dopolnjevala, ko so uporabniki igrali igro in tako prispevali nove skice. Poleg klasifikacije skic je glede na podano besedo mreˇ za zmoˇ zna tudi narisati nove skice, ki so vsakokrat drugaˇ cne in razliˇ cne od vseh v podat- kovni zbirki, dopolnjevati nedokonˇ cane skice, vizualiza- cijo vmesnih korakov pri pretvorbi ene skice v drugo idr. Zanimivo je tudi, da skic ne hranijo kot statiˇ cne slike, ampak hranijo tudi podatke o tem, kako je oseba narisala skico (npr. zaporedje in smer ˇ crt). [1] Leafsnap je mobilna aplikacija za prepoznavo rastlin- skih vrst z uporabo raˇ cunalniˇ skega vida. Sistem prepozna vrste dreves iz fotografij njihovih listov. Sistem vkljuˇ cuje komponente za odstranjevanje slik, ki ne predstavljajo li- stov, segmentacijo listov od preprostega ozadja, prido- bivanje znaˇ cilnosti, ki predstavljajo ukrivljenost lista in prepoznavo lista iz podatkovne zbirke 184 dreves. Za klasifikacijo, ali slika sploh predstavlja list, uporabljajo binarni klasifikator z GIST znaˇ cilnostmi. List od ozadja loˇ cijo s pomoˇ cjo ocenjevanja barve ospredja in ozadja v prostoru nasiˇ cenost-vrednost barvnega modela HSV . Nato izraˇ cunajo veˇ c histogramov za ukrivljenost lista. Najbolj podobne liste iz podatkovne zbirke najdejo z uporabo pre- seka histogramov, te rezultate pa uporabijo za doloˇ canje, kateremu drevesu pripada list. [2] Podobno kot zgornja projekta tudi mi uporabljamo precej veliko podatkovno zbirko (okrog 7000 slikarskih del). Za iskanje podobnih slik smo pri nekaterih krite- rijih tako kot pri aplikaciji Quick, Draw! uporabili ne- vronsko mreˇ zo, le da sta pri nas konvolucijski, pri njih pa je rekurenˇ cna. Prav tako sta bili naˇ si mreˇ zi nauˇ ceni ˇ ze vnaprej, medtem ko so avtorji Quick, Draw! mreˇ zo nauˇ cili na skicah, ki so jih pridobili od uporabnikov. Pri nekaterih kriterijih smo podobno kot pri aplikaciji Leaf- snap izraˇ cunali histograme, a smo namesto s presekom histogramov podobnosti izraˇ cunali s Hellingerjevo raz- daljo. Poleg tega za razliko od Leafsnap ne uporabljamo algoritmov za loˇ cevanje ozadja od objektov v sliki, saj ozadje veliko pripomore k naˇ semu naˇ cinu klasifikacije. Vsebinsko pa sta naˇ semu projektu bliˇ zje Art Palette in Art Selfie. Art Palette uporabniku omogoˇ ca bodisi vnos pet razliˇ cnih barv bodisi nalaganje slike, iz katere se izluˇ sˇ ci pet najbolj reprezentativnih barv. V ozadju je podatkovna zbirka tisoˇ ce slikarskih del, za vsako je ˇ ze vnaprej izraˇ cunanih pet barv, ki to sliko najbolje pred- stavljajo. Iskanje najbolj podobnih slik nato opravijo s 126 primerjavo podobnosti teh petih barv. [3] Art Selfie pa je mobilna aplikacija, kjer uporabnik najprej slika sebe (angl. selfie), nato pa se prikaˇ ze vrsta portretov, ki so najbolj podobni naloˇ zeni sliki, zraven pa je podan tudi procent podobnosti. [4] 3 Uporabnost aplikacije Aplikacija je namenjena razliˇ cnim uporabnikom. Sploˇ sno obˇ cinstvo bo v njej videlo predvsem zabavno aplikacijo, kjer lahko naloˇ zijo svojo sliko in poiˇ sˇ cejo podobna sli- karska dela, medtem ko jih specifike algoritmov verjetno ne bodo zelo zanimale. Za njih bi se lahko aplikacijo postavilo npr. v katero izmed galerij, kjer bi se lahko s priloˇ zeno kamero tudi slikali in iskali podobne portrete. ˇ Studente raˇ cunalniˇ stva pa bo bolj zanimalo delova- nje specifiˇ cnih algoritmov in kako dobre rezultate dajo. Tu so pomembni predvsem bolj kompleksni algoritmi, kot so npr. vreˇ ca besed in nevronske mreˇ ze. O osnov- nem delovanju algoritmov si lahko preberejo v sami apli- kaciji, ˇ ce pa si ˇ zelijo o delovanju izvedeti ˇ se veˇ c, pa si lahko ogledajo tudi izvorno kodo. Nenazadnje je aplika- cija zanimiva tudi za ˇ studente umetnosti. Z njo si lahko pomagajo npr. pri obravnavi teorije barv, da iˇ sˇ cejo slike, ki so podobne pa barvnem tonu, nasiˇ cenosti ali vredno- sti. Pri drugih algoritmih pa lahko ocenijo, kako uspeˇ sno raˇ cunalnik najde slike, naslikane v istem obdobju ali slike istega avtorja. 4 Kriteriji za primerjavo Za iskanje podobnih slik smo uporabili podatkovno zbir- ko, ki vkljuˇ cuje slikarska dela 50 najbolj vplivnih ume- tnikov vseh ˇ casov [5]. Nato smo uporabili razliˇ cne algo- ritme, ki omogoˇ cajo iskanje podobnih slik glede na sliko, ki jo je naloˇ zil uporabnik. 4.1 Barvni ton, nasiˇ cenost, vrednost Zaˇ celi smo z najbolj preprostimi primerjavami, to je pri- merjanju po barvnemu tonu, nasiˇ cenosti in vrednosti. Pri- merjava se torej dogaja po eni izmed osi barvnega pro- stora HSV . Najprej smo za vsako izmed slik v zbirki na- redili histogram tona, nasiˇ cenosti in vrednosti ter te po- datke shranili v tri JSON datoteke. Za sliko, ki jo uporab- nik naloˇ zi, se izraˇ cuna histogram za izbran kriterij, nato pa se s Hellingerjevo razdaljo poiˇ sˇ ce najbliˇ zje histograme iz JSON datotek. Imena datotek najbolj podobnih slik so nato poslana uporabniˇ skemu vmesniku, ta pa jih uporab- niku prikaˇ ze. Kljub dokaj primitivni obdelavi vidimo, da je moˇ zno tudi s takˇ snimi poizvedbami poiskati dobre rezultate. To velja ˇ se posebej za slike narave, kjer prevladuje ena ali pa morebiti dve barvi. 4.2 Normalizirana navzkriˇ zna korelacija (NCC) Tukaj smo uporabili algoritem normalizirana navzkriˇ zna korelacija (angl. normalized cross-correlation). Algori- tem temelji na interpretaciji slike kot signala, nato pa si- gnala primerja po tem, kakˇ sen je njun odmik. Bolje se signala prekrivata, bolj sta si podobna. Seveda vhodno sliko spremenimo v signal in jo nato primerjamo z vsako (a) Referenˇ cna slika (b) Prvi zadetek (c) Drugi zadetek (d) Tretji zadetek Slika 1: Rezultati poizvedbe: ton sliko iz zbirke. NCC brez dodatne obdelave je dokaj grob algoritem, ki pogosto ne vraˇ ca zelo podobnih rezultatov, zato mu v naslednjem razdelku pomagamo z ekstrakcijo robov. Pri NCC-ju je prav tako omembe vredno to, da se slike primerja, kot da bi bile ˇ crno-bele, torej se ne ozira na barve, ki jih slika vsebuje. 4.3 Robovi Pri robovih smo iz slik najprej izluˇ sˇ cili robove s pomoˇ cjo algoritma ”Canny”, nato pa smo slike z izluˇ sˇ cenimi ro- bovi primerjali z metodo NCC, enako kot pri prejˇ snji toˇ cki. (a) Referenˇ cna slika (b) Prvi zadetek (c) Drugi zadetek (d) Tretji zadetek Slika 2: Rezultati poizvedbe: robovi Predhodno izluˇ sˇ cevanje robov znatno izboljˇ sa rezultate, kot je razvidno iz slike 2. Prav tako vidimo NCC v akciji, saj se zadetka (c) in (d) razlikujeta v barvi, NCC pa ju postavi skupaj, saj sta po pretvorbi v ˇ crno-belo enaki. 4.4 Konvolucijska nevronska mreˇ za AlexNet Uporabili smo ˇ ze nauˇ ceno konvolucijsko nevronsko mreˇ zo (angl. convolutional neural network) AlexNet, ki je del Python knjiˇ znice PyTorch [6]. Vsako sliko iz podatkovne zbirke smo najprej transformirali v skladu z navodili mo- dela, nato pa z modelom pretvorili to transformirano sliko 127 v vektor znaˇ cilk. Te vektorje smo shranili v JSON dato- teko. Tudi sliko, ki jo naloˇ zi uporabnik, transformiramo in pretvorimo v vektor znaˇ cilk, nato pa s Hellingerjevo razdaljo najdemo najbliˇ zje vektorje iz JSON datoteke in s tem pripadajoˇ ce slike. 4.5 Deskriptor barvne postavitve (CLD) Deskriptor barvne postavitve (angl. color layout descrip- tor) uˇ cinkovito predstavi prostorsko postavitev barv, kar omogoˇ ca njegovo uporabo pri poizvedovanju slik. Po- stopek pridobivanja le-tega je sestavljen iz dveh delov; mreˇ znega izbora reprezentativne barve (tj. slika je razde- ljena na mreˇ zo in iz vsakega dela mreˇ ze je izbrana repre- zentativna barva) in pa diskretne kosinusne transforma- cije. Za vse slike iz zbirke so bili predˇ casno pridobljeni in shranjeni pripadajoˇ ci deskriptorji, ki smo jih nato pri poi- zvedovanju primerjali z vhodnim deskriptorjem s pomoˇ cjo evklidske razdalje. Na ta naˇ cin so se lahko enostavno po- iskale slike s podobno barvno porazdelitvijo, vendar pa so se pri tem zanemarile pomembne lastnosti slik, kot je npr. tekstura. 4.6 Deskriptor histogramov robov (EHD) Deskriptor histogramov robov (angl. edge histogram de- scriptor) je pridobljen s pomoˇ cjo segmentacije slike na 16 (4x4) manjˇ sih delov. Vsak segment je nato nadalje deljen do velikosti segmenta 4 (2x2) pikslov, katerim je nato doloˇ cen eden izmed petih tipov robov: navpiˇ cni, vo- doravni, diagonala pod kotom 45 stopinj, diagonala pod kotom 135 stopinj ali pa neusmerjeni rob. S pomoˇ cjo opi- sanega postopka lahko na prostorsko uˇ cinkovit naˇ cin pri- dobimo opis teksture slike, ki ga nato uporabimo pri po- izvedovanju. Iz vhodne slike je pridobljen deskriptor, ki je nato primerjan z ostalimi s pomoˇ cjo evklidske razdalje. Kljub temu, da smo pri naˇ sem projektu uporabljali de- skriptor zgolj na lokalni ravni, je aplikacija le-tega moˇ zna tudi na globalnem nivoju [7]. V praksi se pri vsebinskem poizvedovanju slik (angl. content-based image retrieval) velikokrat uporablja kom- binacija veˇ c nizko nivojskih deskriptorjev (kot sta to npr. CLD in EHD), saj to omogoˇ ci analizo slike iz razliˇ cnih vidikov (barva, tekstura, ...). Ena izmed moˇ znih kom- binacij je prav zagotovo par deskriptorjev CLD in EHD [8], ki prostorsko uˇ cinkovito opiˇ se barvo in teksturo slike, vendar pa tega v okviru naˇ se aplikacije nismo realizirali. 4.7 Konvolucijska nevronska mreˇ za VGG16 Konvolucijska nevronska mreˇ za VGG16 predstavlja nad- gradnjo ˇ ze omenjene mreˇ ze AlexNet. Uˇ cenje te mreˇ ze je zelo poˇ casno, zato je bila uporabljena ˇ ze nauˇ cena mreˇ za knjiˇ znice PyTorch [6]. Sam postopek pridobivanja vek- torjev znaˇ cilk pri poizvedovanju je enak postopku, opi- sanem v razdelku 4.4. Bistvena razlika med nevronsko mreˇ zo AlexNet in VGG16 je v velikosti konvolucijskih jeder, kjer slednja uporablja manjˇ sa jedra (velikosti 3x3 toˇ ckovne pike), kar omogoˇ ci hitrejˇ se uˇ cenje mreˇ ze, hkrati pa je zaradi manjˇ sega ˇ stevila spremenljivk mreˇ za VGG16 odpornejˇ sa na prekomerno prilagajanje. (a) Referenˇ cna slika (b) Prvi zadetek (c) Drugi zadetek (d) Tretji zadetek Slika 3: Rezultati poizvedbe: CNN VGG16 Nevronski mreˇ zi AlexNet in VGG16 se najboljˇ se obne- seta pri poizvedbah portretov. Izmed vseh implementira- nih tehnik slednji prikaˇ zeta najbolj relevantne rezultate. Na sliki 3 so prikazani rezultati poizvedbe s portretom, kjer je razvidno, da je nevronska mreˇ za VGG16 uspeˇ sno (v primerjavi z ostalimi algoritmi) poiskala podobne por- trete. 4.8 Vreˇ ca besed (BOW) Ta metoda temelji na ekstrakciji posebnih znaˇ cilnosti iz vseh slik v podatkovni zbirki, te znaˇ cilnosti se nato gruˇ cijo in primerjajo z algoritmi strojnega uˇ cenja (angl. bag- of-words). Toˇ cke smo iz slik pridobili s pomoˇ cjo algo- ritma SIFT, ki znaˇ cilnosti opiˇ se kot vektorje dolˇ zine 128, gruˇ cili pa smo jih z metodo voditeljev. Pri metodi vodi- teljev je potrebno vnaprej izbrati ˇ zeljeno ˇ stevilo gruˇ c. S poskuˇ sanjem smo ugotovili, da algoritem vraˇ ca zadovo- ljive rezultate pri 50 gruˇ cah. Vsako gruˇ co je nato moˇ zno interpretirati kot ”besedo” in vsako sliko kot ”besedilo”. Mnoˇ zico gruˇ c, v katerih ima slika svoje znaˇ cilnosti, po- tem interpretiramo kot besede v besedilu. Sedaj imamo besedila, ki jih lahko primerjamo kar s klasiˇ cnimi algo- ritmi za primerjanje podobnosti besedil. Sestavimo naj- prej inverzni indeks, torej slovar, ki ima za kljuˇ c oznako gruˇ ce (torej besedo), za vrednosti pa slike (torej bese- dila), v katerih se ”beseda” pojavlja, kar pomeni, da slika vsebuje vsaj eno izmed znaˇ cilnosti iz gruˇ ce v kljuˇ cu slo- varja. Na tak naˇ cin indeksirana besedila lahko primer- jamo s pomoˇ cjo metode tf-idf. Novo sliko torej prav tako pretvorimo v besedilo in ga nato s tf-idf primerjamo z vsemi ostalimi besedili. Za razdaljo med besedili upora- bimo kosinusno razdaljo, saj se je izkazala kot uporabna za naˇ so podatkovno zbirko. 128 (a) Referenˇ cna slika (b) Prvi zadetek (c) Drugi zadetek (d) Tretji zadetek Slika 4: Rezultati poizvedbe: bag-of-words BOW je posebej odvisen od raznolikosti zbirke, s ka- tero delamo. V zbirki, ki bi bila sestavljena samo iz ˇ clove- ˇ skih obrazov, bi tako npr. zlahka izluˇ sˇ cili znaˇ cilnosti, kot so nos, oko, itd. Pri zbirki, ki je tako razgibana kot naˇ sa, se stvar zaplete. Pojavi se problem, ker imajo nekatere slike veliko veˇ c posebnih znaˇ cilnosti kot druge, prav tako so te znaˇ cilnosti velikokrat ˇ cloveku posebej brezpomen- ske, saj nanje gleda kot na celoto, medtem ko jih algori- tem obravnava posebej. Tako nastane veliko gruˇ c, ki jih je teˇ zko klasificirati, kot sta npr. ”nos” ali ”oko”, saj so za ˇ cloveka brezpredmetne. To pogosto negativno vpliva na kvaliteto vrnjenih rezultatov. Na sliki 4 je prikazan primer, kjer za poizvedbo uporabimo sliko Pieta Mon- driana, za katero se izkaˇ ze, da ima zelo malo posebnih znaˇ cilnosti. Ker ˇ stevilo znaˇ cilnosti lahko znatno vpliva na kvaliteto poizvedbe, smo problem delno reˇ sili z vpe- ljavo kosinusne razdalje. Ta nam pomaga tako, da pri bolj razgibanih vhodnih slikah zelo verjetno dobimo tudi razgibane rezultate in obratno. 5 Uporabniˇ ski vmesnik Spletno aplikacijo smo izdelali v programskem jeziku Python [9] s pomoˇ cjo spletnega ogrodja Flask [10]. V desnem zgornjem kotu se nahaja gumb, s pomoˇ cjo ka- terega lahko uporabnik naloˇ zi poljubno sliko s svojega raˇ cunalnika, ki se bo pozneje uporabila za iskanje podob- nih slikarskih del. Po nalaganju slike pa v levem zgor- njem kotu izbere kriterij, po katerem naj aplikacija najde podobne slike. Za vsak kriterij je na voljo en gumb, ob premiku miˇ ske na gumb pa se pojavi okence, ki na kratko opiˇ se bistvo delovanja kriterija. Po koncu iskanja podob- nih slik se spodaj prikaˇ ze veˇ cja originalna slika, ki jo je uporabnik naloˇ zil, zraven pa se postopoma prikaˇ zejo po- dobne slike iz podatkovne zbirke slikarskih del. 6 Moˇ zne izboljˇ save Moˇ znih izboljˇ sav je veliko, je pa pri vsaki potrebno pa- ziti, da na raˇ cun kvalitete ne ˇ zrtvujemo hitrosti delova- Slika 5: Izgled uporabniˇ skega vmesnika. nja. Moˇ zno je npr. uporabiti veˇ cjo zbirko, vendar je v tem primeru potrebno poskrbeti, da so vsi podatki iz slik izluˇ sˇ ceni ˇ ze vnaprej (to je pri veˇ cini algoritmov ˇ ze imple- mentirano) in se raˇ cuna le s temi. Pri velikih zbirkah, kjer bi postalo raˇ cunanje z ˇ ze obdelanimi podatki zamudno, bi lahko slike predhodno gruˇ cili na podlagi njihovih barvnih lastnostih. Lahko bi torej napravili gruˇ ce na podlagi tona, vrednosti in nasiˇ cenosti barv ter vhodno sliko primerjali samo s slikami iz gruˇ c, katerim pripada. To bi izboljˇ salo kvaliteto poizvedb tudi v primeru manjˇ se zbirke. V primeru prevelike zbirke je moˇ zno uporabiti hi- trejˇ se algoritme, ki lahko najdejo manj kvalitetne rezul- tate, vendar so veliko hitrejˇ si. Primer takˇ snega algoritma bi bil SURF, ki bi ga lahko namesto algoritma SIFT upo- rabili za izluˇ sˇ cevanje posebnih znaˇ cilnosti iz slik. Pri hi- trosti je vredno omeniti tudi to, da je trenutno vsa koda, z morebitno izjemo uporabljenih knjiˇ znic, napisana v pro- gramskem jeziku Python, za katerega je znano, da je poˇ ca- sen. Hitrost je torej moˇ zno izboljˇ sati tudi z uporabo hi- trejˇ sega jezika, npr. C++. Izboljˇ sati je moˇ zno tudi vmesnik, veˇ cinoma z doda- nimi funkcionalnostmi. Lahko bi npr. dodali, da algo- ritem poleg slik predlaga avtorja, za katerega je najbolj verjetno, da je vhodno sliko naslikal in obdobje, v kate- rem je najverjetneje nastalo. 7 Zakljuˇ cek Izdelali smo spletno aplikacijo, na katero lahko uporab- nik naloˇ zi svojo sliko in jo z razliˇ cnimi algoritmi, ki so bili opisani v tem poroˇ cilu, primerja s slikami znanih ume- tnikov. Sooˇ cati se s tako razgibano podatkovno zbirko, kot so dela iz mnogih obdobij, je teˇ zek zalogaj za veˇ cino algoritmov, ki so pogosto dobri v bolj specifiˇ cnih situaci- jah. V primeru, kjer je podatkovna zbirka zelo raznolika, se izkaˇ zejo za najbolj uporabne nevronske mreˇ ze, ki so ˇ ze sicer znane kot eno izmed najboljˇ sih orodij na podroˇ cju umetnega zaznavanja. Za bolj kvalitetne rezultate bi bilo potrebno razviti celosten postopek, ki bi uporabljal kom- binacijo postopkov, opisanih v tem ˇ clanku. Aplikacijo smo testirali na ravni osnovnega delova- nja in ovrednotili ustreznost rezultatov s pomoˇ cjo upo- rabnikov znotraj skupine sodelavcev. Ko smo si ogledali ponujene podobne slike, smo lahko tudi vizualno oce- nili, na kateri ravni in kako so si podobne, ter ˇ cloveˇ sko 129 zaznavo in razumevanje primerjali z delovanjem algorit- mov v ozadju. Ocenjujemo, da aplikacija deluje dobro in vraˇ ca zanimive rezultate, ki bi jih lahko ˇ se dodatno ana- lizirali in interpretirali. V nadaljevanju projekta bi bilo smiselno aplikacijo postaviti v razliˇ cna okolja, opisana v 3. poglavju, kjer bi od uporabnikov pridobili informacije o specifiˇ cnih uporabah, kar bi omogoˇ cilo tudi nadaljnji razvoj in fokusiranje projekta v smeri doloˇ cenih uporab, tako na ravni algoritmov kot na ravni vmesnika. Literatura [1] Ha, D. & Eck, D. A Neural Representation of Sketch Drawings. CoRR. abs/1704.03477 (2017), http://arxiv.org/abs/1704.03477 [2] Kumar, N., Belhumeur, P., Biswas, A., Jacobs, D., Kress, W., Lopez, I. & Soares, J. Leafsnap: A Computer Vision System for Automatic Plant Species Identification. ECCV. (2012) [3] Art Palette, https://artsexperiments.withgoogle.com/artpalette [4] Art Selfie, https://artsandculture.google.com/camera/selfie [5] Best Artworks of All Time, https://www.kaggle.com/ikarus777/best-artworks-of- all-time [6] TORCHVISION.MODELS, ht- tps://pytorch.org/vision/stable/models.html [7] Park, D., Jeon, Y . & Won, C. Efficient use of local edge histogram descriptor. Proceedings Of The ACM Workshops On Multimedia. 2 pp. 51-54 (2000) [8] Rachmawati, E., Afkar, M. & Purnama, B. Adaptive Wei- ght in Combining Color and Texture Feature in Content Ba- sed Image Retrieval. (2017) [9] Python, https://www.python.org/ [10] Flask, https://flask.palletsprojects.com/en/2.0.x/