Top Banner
Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje Konrad Burnik, Kristijan Burnik Seminar za teorijsko računarstvo PMF – Matematički odjel, Zagreb Prosinac 2014
54

Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Feb 28, 2023

Download

Documents

Ivan Tot
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Konrad Burnik, Kristijan Burnik

Seminar za teorijsko računarstvo PMF – Matematički odjel, ZagrebProsinac 2014

Page 2: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

UvodAlgoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Obrađujemo kriterije i algoritme kod usporedbe dvaju slika reprezentiranih vektorskim objektima. Postavljamo pitanje: što znači kvalitativno (po sadržaju) usporediti dvije vektorske slike? Kakve strukture podataka koristimo u zapisu?

Seminar je zamišljen kao kratki pregled ovog zanimljivog područja sa stanovišta teorije, ali i praktičnih primjena u računarstvu.

Page 3: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

UvodKonrad Burnik,Doktorski studij matematike, PMFTajnik udruge informatičara ABC info

Kristijan Burnik,Tajnik udruge informatičara BOŽO TEŽAK Contest manager ZG. Informatijada BOŽO TEŽAKAutor softverskog projekta "L O V R E"

Page 4: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Pregled sadržaja● Motivacija● Programski jezik Logo● Bodovanje na natjecanju● Metode usporedbe i vrednovanja● Raster usporedba● Vektorska usporedba● Normalizacija i normalizacijski algoritmi● Verifikacija i paralelizam● Vrednovanje● Primjene● Zahvale

Page 5: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Motivacija● Niz godina rada s osnovnoškolcima na području programiranja u

Zagrebačkom računalnom savezu.

● Veliki broj natjecanja i uspjeha u RH te inozemstvu.

● Niz uočenih problema i poteškoća na natjecanjima, često zbog nedostatka pravih alata (softvera).

Page 6: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Motivacija● Sustav za automatsko vrednovanje vektorskih slika otvara velik broj

izazova, kako s tehničke, tako i s pedagoške strane.

● U praksi nudi moćan alat za učenje i samostalni rad i razvoj učenika.

● Potiče na razmišljanje i otvara pitanja o tome na koji način umanjiti ulogu subjektivne procjene kod bodovanja uradaka te kako algoritamski primijeniti kriterije vrednovanja koji su do sada uglavnom bili podložni interpretaciji.

Page 7: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Programski jezik Logo● Interpreterski jezik nalik Lispu osmišljen 1967. s intelektualnim korjenima u

umjetnoj inteligenciji, matematičkoj logici i razvojnoj psihologiji.

● Podržava crtanje kornjačom što je iznimno intuitivno, razvija logiku i programerske sposobnosti kod početnika, a naročito djece predškolske i osnovnoškolske dobi.

● U praksi se najčešće danas koriste UCBLogo i FMSLogo.

Page 8: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Programski jezik Logo

Page 9: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Programski jezik LogoOsnovne naredbe (prve 3 radionice s početnikom):

csfd :d, bk :drt :k, lt :kpu, pdcircle :r

Page 10: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Programski jezik LogoJoš neke naredbe:

make :variable :valuerepeat :n :instructionsif :condition :instructionssetpos :p, posfillellipse :rx :rylist :a :bfirst :l, last :l, item :i :lbutfirst :l, butlast :lsort :l

Page 11: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Programski jezik Logo

Page 12: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Programski jezik Logo

Page 13: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Programski jezik Logo

Page 14: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Programski jezik Logo

Page 15: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Programski jezik Logo

Page 16: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Programski jezik Logo

Page 17: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Programski jezik Logo

Page 18: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Primjer natjecanjaZG. Informatijada BOŽO TEŽAK, programersko natjecanje za djecu i učenike od 6 do 19 godina

● tri razine: MINI (razredna nastava), AVVENIRE (osnovne škole) i MASTERS (olimpijski kandidati) ;

● dva programerska područja (Logo / C++) ;● 11 godina tradicije

Page 19: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Bodovanje na natjecanjima● Izvorni kod rješenja se učitava, pokreće sa test primjerima te uspoređuje s

pripadnom slikom službenog rješenja.

● Boduje se po zadanim kvalitativnim kriterijima (određeni elementi trebaju postojati).

● Na nekim razinama se rade i grupe bodova tako da kad neki dio slike nedostaje se ipak osvaja dio bodova. Veoma otvoreno interpretraciji...

● Izvorni kod se ne boduje.

Page 20: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Metode usporedbe i vrednovanja● Ručnim putem - čitav proces

● Ručnim putem uz jednostavnu automatizaciju

● Ručnim putem uz unaprijeđenu automatizaciju

● Potpuno automatizirano

Page 21: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Metode usporedbe i vrednovanjaNačelno se riješava problem kako odrediti jesu li dvije slike kvalitativno jednake:

Ako je moguće dvije rastezljive prozirne folije sa slikama (jedna crvena, a druga plava) namjestiti tako da se vidi samo ljubičasta boja.

http://test.ibt.zrs.hr/manager/

http://test.ibt.zrs.hr/manager/#/result/25/verification/11321

Page 22: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Metode usporedbe i vrednovanjaRučnim putem - čitav proces

Prednosti:- temeljitost (double-checking)- moguće bodovati po sadržaju/temi (npr. krov od kuće donosi 30% bodova)

Nedostaci:- mnogo vremena - bodovi se unose ručno- mogućnost previda, preskakivanja- često je moguće previdjeti odstupanje od službenog rješenja- subjektivnost dovodi do nekonzistentnosti

Page 23: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Metode usporedbe i vrednovanjaRučnim putem uz jednostavnu automatizaciju

Unaprijed pripremljena skripta koja pokreće natjecateljska rješenja.

Prednosti:- brže od potpuno ručnog procesa

Nedostaci:- bodovi se unose ručno- često je moguće previdjeti odstupanje od službenog rješenja- subjektivnost dovodi do nekonzistentnosti

Page 24: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Metode usporedbe i vrednovanjaRučnim putem uz unaprijeđenu automatizaciju

Osim slike ispitnog rješenja, crta se i slika službenog rješenja.

Prednosti:- manja mogućnost previda nepoklapanja slika

Nedostaci:- i dalje zahtijeva pripremu te koncentraciju kod bodovanja

Page 25: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Metode usporedbe i vrednovanjaPotpuna automatizacija

Prednosti:- gotovo trenutačna povratna informacija- lakše ispravljanje pogrešaka (reevaluacija)- ne zahtijeva ručni rad, samo kvalitetnu pripremu- zahtijeva strukturu i disciplinu kod definiranja zadataka- radi izvrsno kod potpuno ispravnih rješenja- bodovi se unose prema zadanim kriterijima i odstupanjima

Nedostaci:- bodovanje po sadržaju traži dodatni angažman kod pripreme- rubni slučajevi i dalje trebaju biti pregledani

Page 26: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Raster usporedba● Jedinica usporedbe je jedan piksel.

● Bez dodatnih optimizacija, uspoređuje se 1000x1000 sa 1000x1000 piksela. Ukupno 106 usporedba. Postotak poklapanja ne govori kvalitativno ništa ako je dozvoljena translacija.

● Transformacijama se gubi kvaliteta slike.

● Zahtjevaju se i kopije, svaka po 3 * 106 B.

Page 27: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Vektorska usporedbaPrednosti● U pravilu znatno manji broj objekata za usporediti.

● Transformacijom se ne gubi kvaliteta.

● Renderiranjem moguće prijeći u raster - kao zadnja provjera.

● Grupiranjem objekata moguće definirati sadržaj (npr. kotač od automobila).

Page 28: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Vektorska usporedbaGlavni problemi● Preciznost● Redoslijed crtanja● Pogreška relativne pozicije, rotacije i zrcaljenja● Skala crteža● Višepotezne i preklapajuće dužine● Obojane zatvorene površine● Usporedba grupa (sadržajnih elemenata)

Page 29: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

NormalizacijaPostupak nad ispitnom i normiranom slikom koji omogućuje ispravnu kvalitativnu usporedbu.

● Objekti se transformiraju, grupiraju, sortiraju, spajaju i uklanjaju ne bi li na jednostavan način proveli usporedbu (usporedba dva slijeda).

● Svaki postupak normalizacije zadržava kvalitetu slike (reverzibilnost prema rasteru).

Page 30: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

NormalizacijaNapomenaManja nespretnost kod nepovezanih pojmova - normalizacija i normiranost.

1. Normalizacija je postupak nad vektorskom slikom koji zadržava kvalitetu prema rasteru.

2. Normirana slika je unaprijed zadana vektorska slika službenog rješenja (bez ikakve normalizacije) - norma koja se zadovoljava/ispituje.

Page 31: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

NormalizacijaPrimjer:

Normirana slika sadrži kvadrat stranice 100 u 1. kvadrantu.Ispitna slika sadrži kvadrat stranice 100 u 2. kvadrantu.

Dozvoljeno odstupanje: Pozicija lika na ekranu nije bitna.

Slike su kvalitativno iste. Moguće je translacijom postići da se slike poklapaju. Translacija je ovdje normalizacijski postupak.

Page 32: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Normalizacijski algoritmi● Preciznost

● Redoslijed crtanja

● Odstupanje u poziciji

● Odstupanje u rotaciji

● Višepotezne i preklapajuće dužine

● Obojane zatvorene površine

Page 33: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

PreciznostVeoma rijetko predstavlja problem.

Algoritam: Zaokruživanje razriješava većinu poteškoća.Općenito: usporedba točaka i vektora uz zadani e.

Potencijalno problematično (vremenski složeno) kod traženja parova točaka udaljenih za d < e.

Page 34: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Redoslijed crtanja je uvijek proizvoljan: potreban je normalizacijski postupak prije usporedbe.

Algoritam:Grupirati objekte po tipu; O(n)Sortirati objekte unutar tipa; O(p log

2 p)

* p = broj objekata zadanog tipa

Redoslijed crtanja

Page 35: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Odstupanje u pozicijiČesto dozvoljeno odstupanje: Pozicija lika na ekranu nije bitna.

Rješenje: obje slike dovesti u istu točku te zatim usporediti.

Algoritam: Izračunati najmanji pravokutnik koji obuhvaća sliku; O(n)Izračunati poziciju donjeg lijevog vrha pravokutnika (dx, dy); O(1)Translatirati čitavu sliku u ishodište: ∀ T : T’(x - dx, y - dy); O(n)

Page 36: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Odstupanje u rotacijiRijetka pojava - dozvoljeno početnicima i u posebnim zadacima.

Glavni problem: Za koji kut zarotirati sliku prije usporedbe?

Dodatna poteškoća: Slučajevi s mnogo točaka.

Page 37: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Odstupanje u rotacijiAlgoritam:

Pronaći težište reprezentativnih točaka objekata; O(n)Translatirati sliku u težište; O(n)Izračunati konveksnu ljusku; O(n log

2 n)

Odabrati najudaljeniju točku T ljuske od ishodišta; O(p)Rotirati sliku za kut koji čini točka T s x-osi; O(n)

* gdje je p broj točaka konveksne ljuske

Page 38: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Odstupanje u rotaciji“Mini” optimizacije

Umjesto euklidske udaljenosti, koristiti kvadrat udaljenosti kod usporedbe.

(a2 + b2) vs √(a2 + b2)

Using Newton's method , the time complexity of calculating a root of a function f(x) with n-digit precision, provided that a good initial approximation is known, is O((logn)F(n)) where F(n) is the cost of calculating f(x)/f'(x)with n-digit precision

Page 39: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Višepotezne i preklapajuće dužineVeoma česta pojava.

Dužine koje su istog vektora smjera te u presjeku spajamo (merge).Ostvarujemo unije i uklanjamo višak.

Page 40: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Višepotezne i preklapajuće dužineAlgoritam:

Sortiramo dužine po vektoru smjera, zatim po točkama leksikografski; O(n log

2 n)

Ako je n < 2 gotovi smo.Sve dok postoji presjek:

Za sve neobrisane dužine A od prve do predzadnje:Za neobrisane dužine B u nizu nakon A, dok A ∩ B ≠ 0,

Ako A ∩ B ≠ 0:A postaje A ⋃ BObriši B

O(n2)

Page 41: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Višepotezne i preklapajuće dužinePresjek dužina istog vektora smjera

Osigurati: sA ≤ e

A ∧ s

B ≤ e

B

Ocijeniti: v

A = v

B ∧ ( s

A ≤ s

B ≤ e

A ∨ s

B ≤ s

A ≤ e

B )

O(1)

sA

eA

sB

eB

sA

eA

sB

eB

Page 42: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Višepotezne i preklapajuće dužineLeksikografska usporedba točaka

s ≤ e ≡ (xs ≤ x

e) ∧ ( (y

s ≤ y

e) ∨ (x

s = x

e ∧ y

s ≤ y

e) )

O(1)

Page 43: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Obojane zatvorene površine“Flood Fill“

● Ispunjava zatvorenu površinu pikselima zadane boje.

● Jedini rasterski objekt!

● Može sačinjavati veliki broj točaka.

● Nerijetko se stapa u unije.

Page 44: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Obojane zatvorene površinePrijelaz s rastera na vektorski objekt

O ≡ izvor (točka s koje kreće flood fill)A ≡ slika prije bojanjaB ≡ slika nakon bojanjaF ≡ upravo obojana regija slike = B - A

Na F provesti BFS algoritam od izvora sve do rubova obojane regijeIzdvojiti i reducirati skup točaka (uzeti npr. svaku treću) na rubovima = F’

F’ čini poligon (ovojnicu) obojanog rastera.

F’ je vektorski objekt.

Page 45: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Obojane zatvorene površineUsporedba ovojnica

N ≡ normirana ovojnicaF’ ≡ ispitna ovojnicaOpćenito: Ispitujemo je li poligon F’ čitav unutar N.

Dovoljni uvjet za poklapanje konveksnih ovojnicaK(S) ≡ konveksna ljuska skupa SF’’ = reducirana ispitna ljuska (izvana “ošišana” za 1 piksel)Skup F’’ mora čitav ležati unutar N: K(F’’ U N) = NReducirana ispitna ljuska F’’ je važna u slučaju različitog normiranog i ispitnog izvora bojanja (nerijetko), budući drukčije točke mogu sačinjavati istu ovojnicu.

O(n log2 n)

Page 46: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Verifikacija i paralelizamPod verifikacijom se podrazumijeva računanje najboljeg ishoda za zadano ispitno rješenje, u tom procesu se provodi niz usporedbi s različitim kombinacijama normalizacijskih postupaka. Rezultati verifikacije uključuju primjenjene normalizacijske postupke, broj uparenih objekata te višak i/ili manjak istih.

Sa stanovišta ukupnog sustava za provjeru rješenja, verifikatori su idealna razgraničenja paralelizma budući se za N odabranih normalizacijskih postupaka provodi najviše 2N verifikacija.

Primjer: CompactLines + Scale

Page 47: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

VrednovanjeNa temelju rezultata svih provedenih verifikacija, odabiru se najpogodniji te se po zadanim kriterijima računaju bodovi za takvo rješenje. Ovo je zadnji korak prije unosa bodova.

Page 48: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

PrimjeneL O V R EReal-time Logo vrednovač (evaluator), Zagrebačkog računalnog saveza

● Glavna i najvažnija primjena leži u radu s darovitima.

● Opisani algoritmi postaju sastavni dio sustava za automatsko vrednovanje slikovnih izlaza u Logo programima.

● Radionice i natjecanja iz programiranja.

Page 49: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Primjene - arhitekturaL O V R E

Page 50: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Primjene - obrada

Page 51: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Primjene - vektorski zapis

[evaluate start 0 529326031]

[line [0 0] [0 100] [pendown paint [1 1] [0 0 0] [1]]]

[line [0 100] [100 100] [pendown paint [1 1] [0 0 0] [1]]]

[line [100 0] [100 100] [pendown paint [1 1] [0 0 0] [1]]]

[line [0 0] [100 0] [pendown paint [1 1] [0 0 0] [1]]]

[evaluate end 0 529326046]

Page 52: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Primjene - kriteriji

Page 53: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

Primjene - vrednovanje

Page 54: Algoritmi normalizacije, transformacije i usporedbe vektorske grafike uz automatsku verifikaciju i vrednovanje

ZahvaleSvima prisutnima na seminaruPMF - Matematičkom odjelu

Posebno zahvaljujemo:

Zagrebačkom računalnom savezu www.zrs.hrUdruzi informatičara Božo Težak, udruga članica ZRS-a