• Nie Znaleziono Wyników

Proste rozpoznawanie obrazów

N/A
N/A
Protected

Academic year: 2021

Share "Proste rozpoznawanie obrazów"

Copied!
4
0
0

Pełen tekst

(1)

Proste rozpoznawanie obrazów

Systemy Sztucznej Inteligencji Instrukcje do ćwiczeń laboratoryjnych

Zadania do wykonania

Zadaniem systemu jest rozpoznawanie obrazów dwukolorowych (sygnałów dwuwymiarowych, o wartościach 0 albo 1). Najpierw do systemu dostarczane są obrazy wzorcowe, a następnie obraz testowy. System musi rozpoznać, do którego z obrazów wzorcowych najbardziej jest podobny podany obraz, bądź też spróbować naprawić obraz testowy, tak aby stał się on jak najbardziej podobny do któregoś z obrazów wzorcowych. Dla uproszczenia zakłada się tutaj, że rozmiar wszystkich obrazów jest stały. Wartość 0 oznacza kolor biały, a 1 kolor czarny.

1. Algorytm zachłannego dopasowania punktu

Zadany system posiada zbiór obrazów wzorcowych (zwanych również uczącymi) w postaci dwuwymiarowej bitmapy. Każda z tych map ma nadaną etykietkę, która jest numerem wprowadzonego obrazu. Do systemu jest następnie dostarczona jakaś testowa dwuwymiarowa bitmapa. Zadaniem algorytmu jest wskazanie do jakiej klasy należy ta testowa mapa bitowa, czyli określenie do której z bitmap wzorcowych jest najbardziej podobna podana bitmapa testowa. Dla uproszczenia zakłada się, iż rozmiar bitmap wzorcowych i testowych jest jednakowy oraz każda z nich posiada co najmniej jeden punkt o wartości 1. Przyjmuje się, że kolor czarny oznacza wartość na bitmapie równą 1. Przykładowe bitmapy wzorcowe o rozmiarze 5x4 (wysokość x szerokość):

znak wzorcowy 1:

0 0 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 0 0 1

znak wzorcowy 2:

0 1 1 1 1 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1

znak wzorcowy 3:

1 1 1 0 0 0 0 1 1 1 1 1

(2)

0 0 0 1 1 1 1 0

W wyżej wymienionych przykładach etykietką każdej bitmapy jest jej numer (numer klasy to numer wzoru). Przykładowe bitmapy testowe:

znak testowy 1:

0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 1 0 0 0 1

znak testowy 2:

1 1 1 1 0 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1

znak testowy 3:

1 1 1 1 0 0 0 1 0 0 1 0 1 1 0 0 1 1 1 1

Algorytm potrafi wskazać dla dowolnej bitmapy testowej, która bitmapa jest do niej najbardziej podobna. Dokonywane jest to przez zmierzenie i zsumowanie miary „niepodobieństwa” danej bitmapy testowej do poszczególnych bitmap wzorcowych i vice-versa. Przyjmuje się, iż ta bitmapa wzorcowa wskazywana jest jako najbardziej podobna, dla której suma miar „niepodobieństwa”

między bitmapą wzorcową a testową i między bitmapą testową a wzorcową jest najmniejsza („niepodobieństwo” między bitmapą BA a BB nie musi być równe „niepodobieństwu” między BB a BA).

Sercem algorytmu jest określenie „niepodobieństwa” między dwoma bitmapami BA i BB, której pseudokod to:

miara = miara_niepodobienstwa(bitmapy BA, BB) 1. miara := 0

2. Wykonaj pętlę dla każdego czarnego punktu o pozycji (pay, pax) w BA 1. odl_min = + nieskończoność

2. Wykonaj pętlę dla każdego czarnego punktu o pozycji (pby, pbx) w BB 1. odl_akt := odległość między punktami (pay, pax) a (pby, pbx) 2. odl_min := min{odl_min, odl_akt}

3. miara := miara + odl_min

(3)

Aby określić miarę „obustronnego niepodobieństwa”, lub też miarę podobieństwa pomiędzy bitmapami należy użyć:

miara_podobieństwa_obustronnego(bitmapy BA, BB) =

= -( miara_niepodobieństwa(bitmapy BA, BB) + miara_niepodobieństwa(bitmapy BB, BA) )

Przykład działania:

Dla pewnej bitmapy testowej podanej niżej zastosowano wspomniany algorytm, dla uproszczenia zamiast zalecanej miary odległości euklidesowej zastosowano odległość typu manhattan:

1 1 1 1 0 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1

bitmapa testowa Bitmapa wzorcowa 1. bitmapa wzorcowa 2 Bitmapa wzorcowa 3 1 1 1 1

0 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1

0 0 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 0 0 1

0 1 1 1 1 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1

1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 0 miara_niepodobieńst

wa

(bitmapa testowa, bitmapa wzorcowa x)

3+2+1+0+

0+0+0+0+

1+0+1+0+

0+0+1+0+

3+2+1+0 = 15

1+0+0+0+

0+0+0+0+

1+1+0+1+

0+0+1+1+

0+0+0+0 = 6

0+0+0+1+

0+0+0+0+

0+0+0+0+

0+0+1+0+

0+0+0+1 = 3 miara_niepodobieńst

wa

(bitmapa wzorcowa x, bitmapa testowa)

0+0+0+0+

0+0+1+0+

0+0+0+0+

0+0+0+0+

0+0+0+0 = 1

0+0+0+0+

1+0+0+0+

0+0+0+0+

0+1+0+0+

0+0+0+0 = 2

0+0+0+0+

0+0+0+0+

0+0+0+0+

0+0+0+0+

0+0+0+0 = 0 miara_podobieństwa_

obustronnego

(bitmapa testowa, bitmapa wzorcowa x)

-15-1=-16 -6 -2 = -8 -3 -0 = -3

Jak widać podany bitmapa testowa najbardziej jest podobna do trzeciej bitmapy wzorcowej, ponieważ dla niej najwyższa jest miara_podobieństwa_obustronnego.

Zadanie do wykonania

Należy za pomocą podanego algorytmu określić miarę podobieństwa obustronnego pomiędzy wszystkimi bitmapami testowymi a bitmapami wzorcowymi a następnie dla każdej bitmapy

(4)

testowej wskazać najbardziej podobną bitmapę wzorcową. Należy użyć miary odległości typu euklidesowego.

Należy wykorzystać projekt wzorcowy „GreedyPoint_szablon_C#”. Kod dotyczący algorytmu ma się zawrzeć w pliku „GreedyPointAlgorithm.cs” i klasie statycznej GreedyPointAlgorithm

Cytaty

Powiązane dokumenty

‡ Jednym z najprostszych sposobów reprezentowania drzewa jest wykorzystanie dla każdego węzła struktury składającej się z pola lub pól reprezentujących etykietę oraz

Natomiast języki kontekstowe (3g), zwane też monotonicznymi (3h), stanowią właściwą podklasę języków rekurencyjnych.. Kontrprzykładem

b) zawsze istnieją dokładnie dwie osoby, przy czym jedna z nich ma więcej znajomych w tej grupie niż pozostałe osoby a druga mniej niż pozostałę osoby.. c) istnieje osoba od

Dla dowolnego niepustego zbioru A, je±li wszystkie klasy abstrakcji relacji równo- wa»no±ci ≡ w zbiorze A s¡ przeliczalne, to:.. (a) zbiór ilorazowy A/≡ jest przeliczalny,

W ka»dym podpunkcie poni»szych zada« prosimy udzieli¢ odpowiedzi TAK lub NIE na zaª¡czonym arkuszu odpowiedzi.. Ka»da kombinacja odpowiedzi TAK lub NIE w zadaniu

[r]

Należy kilkukrotnie narysować obrazki trochę różniące się od poprzednio nauczonych, a następnie uruchomić funkcję rozpoznania/korekcji obrazu

Zadaniem algorytmu jest wskazanie do jakiej klasy należy ta testowa mapa bitowa, czyli określenie do której z bitmap wzorcowych jest najbardziej podobna podana bitmapa testowa..