"Oh, znači to je kao Shazam, ali za umjetnost?" upitao je prijatelj nakon što sam protekle dvije minute objašnjavao svoj najnoviji projekt.
Bila je to platforma koja je mogla pomoći ljubiteljima umjetnosti da prepoznaju koji je umjetnik napravio sliku, a ona je to upravo objasnila u 5 riječi; 'Kao Shazam, ali za umjetnost'.
Ovaj članak govori o tome zašto sam započeo projekt i također kako sam napravio prvu verziju.
Zašto?
Cijeli sam život volio umjetnost.
Proveo sam godine istražujući umjetničke pokrete, izrađujući i izlažući vlastita umjetnička djela i općenito družeći se s umjetnicima i galerijama. S vremenom sam razvio sposobnost pogađanja (s visokom razinom točnosti) koji je umjetnik napravio sliku, osobito ako je to bio afrički umjetnik.
U renesansi umjetne inteligencije 2022. dobio sam inspiraciju i pomislio da bi bilo zabavno vidjeti mogu li istrenirati računala da postignu istu stvar, pa sam započeo mali osobni projekt.
Radeći na tome vrlo brzo sam shvatio da postoje veći problemi. Problemi oko dokumentiranja, priznavanja i dijeljenja znanja o afričkoj umjetnosti. Na primjer, postoje stari afrički majstori čije je slike teško pronaći na internetu. Morate ići u stare likovne udžbenike ili osobne zbirke da biste ih pronašli. Zabrinuo sam se da bi se mnoga od tih djela mogla izgubiti u povijesti, kako svijet postaje potpuno digitaliziran.
Nakon ovog izazova odlučio sam projekt učiniti javnim i proširiti ga na digitalno očuvanje i dijeljenje znanja o afričkoj umjetnosti i umjetnicima.
Fokusiran je na afričku umjetnost jer sam znao da to nitko drugi neće učiniti, ali moralo se napraviti, pa je moralo početi od mene.
Kako radi
Korištenje platforme je jednostavno.
Učitavate fotografiju slike ili odaberete jednu od dostupnih oglednih slika.
Platforma obrađuje sliku, identificira umjetnike čiji su umjetnički stilovi najsličniji učitanom umjetničkom djelu, stvara ocjenu pouzdanosti za svakog umjetnika na temelju toga koliko je učitana fotografija slična njihovom umjetničkom stilu i odabire umjetnika s najvećom ocjenom pouzdanosti.
Podaci o izvođaču tada se prikazuju u donjem obliku.
Rezultat pouzdanosti objavljuje se kako bi vam se pokazalo kako je došlo do tog predviđanja i kako bi vam se omogućilo da odlučite kako želite koristiti dobiveni rezultat.
Tu je i odjeljak za povratne informacije (palac gore ili dolje) kako biste mogli pridonijeti projektu i pomoći u poboljšanju modela.
Ovo je pojednostavljeno objašnjenje kako platforma funkcionira. Ispod je više informacija (sa što manje tehničkog žargona) o tome kako je napravljen.
Priprema tehnike/podataka
Prikupljanje i obrada podataka
Ovo nije bio moj prvi ML projekt tako da sam znao da će sok biti u podacima o obuci. Morao sam pronaći i pripremiti dovoljno kvalitetnih podataka za model kako bih dobio dobre rezultate. To se pokazalo težim nego što sam mislio.
Počeo sam uspoređivati i kategorizirati podatke o obuci, ali sam brzo shvatio da će to oduzeti puno vremena pa sam angažirao svoju sestru i dva stažista da na tome rade sa mnom nekoliko mjeseci. (Bili su plaćeni za svoj rad)
Sljedeći korak bilo je čišćenje i standardiziranje podataka.
- Uklanjanje duplikata i normalizacija podataka
- Osiguravanje da su podaci ispravno označeni
- Osiguravanje da svaki umjetnik ima otprilike istu količinu podataka o obuci kako bi se izbjegla pristranost u modelu zbog klasne neravnoteže.
- Osiguravanje da podaci o obuci za svakog umjetnika uključuju dovoljno varijacija njihovih različitih slikarskih stilova i medija kako bi se izbjeglo pretjerano prilagođavanje određenom stilu/mediju umjetnika.
- Osigurati da fotografije treninga imaju slike u različitim kontekstima. Fotografije slika u različitim okruženjima, fotografije slika naopako, crno-bijele verzije slika itd. Ova bi raznolikost pomogla modelu da se dobro ponaša u većini situacija.
Bilo je puno posla, ali ako ovo ispravim, model će raditi dobro.
Nakon što je proces pripreme podataka dovršen, podijelio sam podatke na podatke za obuku i podatke za testiranje (kontrolu) kako bih ih lakše koristio i provjerio točnost.
Izrada/obuka modela
Kad sam razmišljao o modelima, imao sam dvije mogućnosti.
Gradite na temeljnom modelu otvorenog koda ili se oslonite na vlasnički model temeljen na oblaku, npr. GCP-ov AutoML.
Isprobao sam oba pristupa, ali budući da je projekt u početku trebao biti dokaz koncepta, upravljanje troškovima bilo je najveći čimbenik za mene.
Na kraju sam se odlučio za korištenje modela temelja otvorenog koda, EfficientNet. Besplatan je za korištenje, dobar je u prepoznavanju značajki u podacima, ne zahtijeva puno računanja za rad, nudi fleksibilnost u implementaciji i nekako sam ga koristio u prošlosti.
Pronašao sam Tensorflow implementaciju EfficientNeta i upotrijebio je kao okosnicu modela. Imao je podršku za Keras pa je i to pomoglo u upravljanju složenošću.
Bio je dovoljno učinkovit da sam mogao trenirati testne verzije na Macbooku M1 Pro sa 16 GB RAM-a (iako sam se povremeno morao suočiti s mojim laptopom koji se smrzavao).
Ispod haube, model obrađuje fotografije kako bi identificirao ključne značajke kao što su potezi kistom, sheme boja, kompozicija itd., i sažima informacije kako bi zadržao važne dijelove. Koristi te informacije za prepoznavanje sličnosti između novodostavljenih fotografija slika i svojih podataka za obuku.
Eksperimentirao sam s različitim vrijednostima epohe i ranim zaustavljanjem da vidim što najbolje funkcionira i na kraju sam došao do zanimljivih metrika.
Nastavio sam dodavati više umjetnika i eksperimentirati s različitim vrijednostima kako bih dobio nešto dovoljno točno za pokretanje.
Konačna implementacija uključivala je dva modela. Jedan za prepoznavanje slikarskog stila, a drugi za prepoznavanje slikarskog medija.
Dobio sam pomoć u daljnjem usavršavanju modela i njihovoj konačnoj implementaciji s API omotačima.
Dizajn i razvoj aplikacije
Nakon što su modeli razvrstani, ostatak platforme bilo je jednostavno izgraditi. Konačna implementacija je izgledala ovako:
Pozadina/API platforme : Napravio sam pozadinu/API s Laravelom za učinkovito rukovanje logičkim zahtjevima i zahtjevima za usmjeravanje prema stvarnim modelima. Ovaj sloj obrađuje svu obradu slike, pohranjivanje, provjeru valjanosti, podatke o umjetniku i trijažu zahtjeva, tj. kontrolu zahtjeva poslanih modelima.
Sučelje : Sučelje je napravljeno s Reactom. Stvarno ne volim pisati front-end kod pa sam dobio pomoć oko izgradnje ovog dijela. U osnovi kontrolira prikaz informacija i korisničkih zahtjeva poslanih u pozadinu.
Poslužitelj/Hosting: Cijelu sam aplikaciju ugostio na Heroku (uključeni modeli). Odabrao sam Heroku jer mi je omogućio da dobijem mnogo gotovih usluga i podrške po razumnoj cijeni. Nakon mjeseci rada na prikupljanju podataka, obučavanju modela i izgradnji temeljne platforme, nisam želio više raditi, samo sam želio pokrenuti!
Završne bilješke
Etika
Modele sam trenirao isključivo na javno dostupnim podacima.
Dok sam razvijao projekt, provjeravao sam i razne umjetnike da vidim imaju li kakvih problema s projektom i nisam dobio nikakav odgovor. Međutim, ako bilo koji umjetnik kojeg sam uključio u projekt želi biti isključen, molim vas da me obavijestite. Odmah ću to učiniti.
Planovi za budućnost
Vidim mnogo slučajeva upotrebe za ovo u obrazovanju, otkrivanju umjetnosti, turizmu i trgovini. Postoji i nekoliko značajki o kojima sam razmišljao; imenik umjetnika, umjetničke igre temeljene na webu, preporuke umjetnika i još mnogo toga.
Moj je plan nastaviti poboljšavati projekt i učiti što umjetnici, dionici industrije i entuzijasti umjetnosti žele vidjeti sljedeće.
Stvarno sam sretan što sam započeo ovaj projekt. S jedne strane, dao mi je jedinstvenu priliku da spojim dvije stvari koje me zanimaju (umjetnost + tehnika), s druge strane, bio mi je izazov i natjerao me da kreativno razmišljam o raznim problemima. Također osjećam da aktivno pridonosim rastu i očuvanju afričke umjetnosti, i to je sjajan osjećaj.
Link projekta (beta) : https://beta.whomadethisartwork.com/
Napomena *: Beta verzija ograničena je na 100 afričkih umjetnika s planovima da se uskoro uključi više.*
Demo :
Ako ste uživali čitajući ovaj članak, to je zato što sam koristio tehniku pisanja koja se zove "sklizak nagib" kako bih ga učinio zabavnim za čitanje. To je tehnika koju koriste mnogi izvrsni autori, ali i tekstopisci. Ova tehnika i još mnogo toga poučavaju se na tečaju koji se zove CopyThat i to je jedini tečaj pisanja koji će vam ikada trebati. Najbolji dio je što je potrebno samo 10 dana da se završi. 10 dana da postaneš stvarno dobar pisac. Posjetite CopyThat sada kako biste započeli svoje putovanje ka tome da postanete veliki pisac.