segmentacja obrazów cyfrowych z zastosowaniem teorii...
TRANSCRIPT
![Page 1: Segmentacja obrazów cyfrowych z zastosowaniem teorii ...home.agh.edu.pl/~lesniak/wyklady/prezentacja5.pdf• algorytm Kruskala zamiast algorytmu Prima • (w mojej głowie przyspieszam](https://reader033.vdocuments.site/reader033/viewer/2022041817/5e5b87307091e16cc904dc23/html5/thumbnails/1.jpg)
opr. Łukasz ChlebdaSegmentacja obrazów cyfrowych
Segmentacja obrazów cyfrowych
z zastosowaniem teorii grafów -
wstęp
1
wstęp
autor: Łukasz Chlebda
![Page 2: Segmentacja obrazów cyfrowych z zastosowaniem teorii ...home.agh.edu.pl/~lesniak/wyklady/prezentacja5.pdf• algorytm Kruskala zamiast algorytmu Prima • (w mojej głowie przyspieszam](https://reader033.vdocuments.site/reader033/viewer/2022041817/5e5b87307091e16cc904dc23/html5/thumbnails/2.jpg)
opr. Łukasz ChlebdaSegmentacja obrazów cyfrowych - temat pracy
Temat pracy:
Aplikacja do segmentacji obrazów cyfrowych z
zastosowaniem teorii grafów
2
Promotor:
dr hab. inż. Andrzej Leśniak, prof. AGH
![Page 3: Segmentacja obrazów cyfrowych z zastosowaniem teorii ...home.agh.edu.pl/~lesniak/wyklady/prezentacja5.pdf• algorytm Kruskala zamiast algorytmu Prima • (w mojej głowie przyspieszam](https://reader033.vdocuments.site/reader033/viewer/2022041817/5e5b87307091e16cc904dc23/html5/thumbnails/3.jpg)
opr. Łukasz ChlebdaSegmentacja obrazów cyfrowych - plan prezentacji
Plan prezentacji:
• Techniki segmentacji obrazów cyfrowych
• Zarys teorii grafów
• Wykorzystane algorytmy grafowe
• Obraz cyfrowy jako graf
3
• Obraz cyfrowy jako graf
• Opis metod grafowych
• Napotkane problemy
• Wstępne wyniki
![Page 4: Segmentacja obrazów cyfrowych z zastosowaniem teorii ...home.agh.edu.pl/~lesniak/wyklady/prezentacja5.pdf• algorytm Kruskala zamiast algorytmu Prima • (w mojej głowie przyspieszam](https://reader033.vdocuments.site/reader033/viewer/2022041817/5e5b87307091e16cc904dc23/html5/thumbnails/4.jpg)
opr. Łukasz ChlebdaSegmentacja obrazów cyfrowych - techniki segmentacji
Segmentacja obrazów cyfrowych
Segmentacja polega na podziale obrazu na fragmenty odpowiadające
poszczególnym widocznym na obrazie obiektom.
Umożliwia wydzielenie obszarów obrazu spełniających pewne kryteria
jednorodności (np.. kolor obszaru, faktura, poziom jasności).
4
jednorodności (np.. kolor obszaru, faktura, poziom jasności).
Najbardziej powszechne techniki segmentacji:
• segmentacja przez podział obszaru
• segmentacja metodą wykrywanie krawędzi
• segmentacja przez rozrost obszaru
![Page 5: Segmentacja obrazów cyfrowych z zastosowaniem teorii ...home.agh.edu.pl/~lesniak/wyklady/prezentacja5.pdf• algorytm Kruskala zamiast algorytmu Prima • (w mojej głowie przyspieszam](https://reader033.vdocuments.site/reader033/viewer/2022041817/5e5b87307091e16cc904dc23/html5/thumbnails/5.jpg)
opr. Łukasz ChlebdaSegmentacja obrazów cyfrowych - techniki segmentacji
Segmentacja przez podział obszaru
Wartość jasności każdego elementu obrazu jest porównywana z wartością
progową, po czym element jest przydzielany do jednej z dwóch kategorii.
Wyboru wartości progowej dokonuje się zazwyczaj na podstawie histogramu.
Przykład – wieczna zmarzlina – dla progu równego 100:
5
![Page 6: Segmentacja obrazów cyfrowych z zastosowaniem teorii ...home.agh.edu.pl/~lesniak/wyklady/prezentacja5.pdf• algorytm Kruskala zamiast algorytmu Prima • (w mojej głowie przyspieszam](https://reader033.vdocuments.site/reader033/viewer/2022041817/5e5b87307091e16cc904dc23/html5/thumbnails/6.jpg)
opr. Łukasz ChlebdaSegmentacja obrazów cyfrowych - techniki segmentacji
Segmentacja metodą wykrywania krawędzi
Przy tej metodzie są wyszukiwane krawędzie między obszarami –
najczęściej za pomocą operatorów gradientowych. Następnie najczęściej
jest wykonywana operacja progowania.
Przykład – obrazek został przetworzony najpierw operatorami Sobela, później nałożono naniego próg progowania 50:
6
![Page 7: Segmentacja obrazów cyfrowych z zastosowaniem teorii ...home.agh.edu.pl/~lesniak/wyklady/prezentacja5.pdf• algorytm Kruskala zamiast algorytmu Prima • (w mojej głowie przyspieszam](https://reader033.vdocuments.site/reader033/viewer/2022041817/5e5b87307091e16cc904dc23/html5/thumbnails/7.jpg)
opr. Łukasz ChlebdaSegmentacja obrazów cyfrowych - techniki segmentacji
Segmentacja przez rozrost obszaru
W metodzie tej poszukuje się grup elementów o zbliżonej jasności.
Przykładowo – segmentacja morfologiczna – algorytm linii działu wodnego(LDW).
Przykład – elektrofereza żelu – najpierw obraz przefiltrowano (otwarcie + zamknięcie) celemuniknięcia przesegmentowania, by następnie zastosować algorytm LDW dla obrazka
7
uniknięcia przesegmentowania, by następnie zastosować algorytm LDW dla obrazkaprzefiltrowanego:
![Page 8: Segmentacja obrazów cyfrowych z zastosowaniem teorii ...home.agh.edu.pl/~lesniak/wyklady/prezentacja5.pdf• algorytm Kruskala zamiast algorytmu Prima • (w mojej głowie przyspieszam](https://reader033.vdocuments.site/reader033/viewer/2022041817/5e5b87307091e16cc904dc23/html5/thumbnails/8.jpg)
opr. Łukasz ChlebdaSegmentacja obrazów cyfrowych - zarys teorii grafów
Zarys teorii grafów
• Parę G = (V(G), E(G)) (lub w skrócie G=(V, E)) nazywamy grafem,
jeżeli V(G) jest zbiorem skończonym
• Elementy V(G) nazywamy wierzchołkami grafu G, a V(G) zbiorem
wierzchołków.
E(G) V(G) V(G)⊂ ×
8
• Elementy E(G) nazywamy krawędziami grafu G, a E(G) zbiorem
krawędzi.
• Graf jest spójny jeżeli dla dowolnej pary wierzchołków istnieje droga
łącząca te wierzchołki.
• Cykl – to zamknięta droga, w której wszystkie krawędzie są różne
![Page 9: Segmentacja obrazów cyfrowych z zastosowaniem teorii ...home.agh.edu.pl/~lesniak/wyklady/prezentacja5.pdf• algorytm Kruskala zamiast algorytmu Prima • (w mojej głowie przyspieszam](https://reader033.vdocuments.site/reader033/viewer/2022041817/5e5b87307091e16cc904dc23/html5/thumbnails/9.jpg)
opr. Łukasz ChlebdaSegmentacja obrazów cyfrowych - zarys teorii grafów
Rodzaje grafów
Graf prosty Graf z wagami
9
Multigraf (z krawędziami wielokrotnymi i pętlami) Digraf (graf skierowany)
![Page 10: Segmentacja obrazów cyfrowych z zastosowaniem teorii ...home.agh.edu.pl/~lesniak/wyklady/prezentacja5.pdf• algorytm Kruskala zamiast algorytmu Prima • (w mojej głowie przyspieszam](https://reader033.vdocuments.site/reader033/viewer/2022041817/5e5b87307091e16cc904dc23/html5/thumbnails/10.jpg)
opr. Łukasz ChlebdaSegmentacja obrazów cyfrowych - zarys teorii grafów
Drzewa
Drzewem nazywamy graf spójny i acykliczny.
Drzewem spinającym nazywamy minimalny (o minimalnej liczbie
krawędzi) podgraf łączący wszystkie wierzchołki grafu G.
Minimalne drzewo spinające grafu G to drzewo spinające o
minimalnej wadze.
10
Przykłady drzew:
![Page 11: Segmentacja obrazów cyfrowych z zastosowaniem teorii ...home.agh.edu.pl/~lesniak/wyklady/prezentacja5.pdf• algorytm Kruskala zamiast algorytmu Prima • (w mojej głowie przyspieszam](https://reader033.vdocuments.site/reader033/viewer/2022041817/5e5b87307091e16cc904dc23/html5/thumbnails/11.jpg)
opr. Łukasz ChlebdaSegmentacja obrazów cyfrowych - algorytmy grafowe
Algorytmy grafowe
Algorytm Dijkstry - wyznacza minimalną drogę między wierzchołkiem u
i każdym z pozostałych wierzchołków w skończonym digrafie z
nieujemnymi wagami bez pętli i bez krawędzi wielokrotnych.
11
![Page 12: Segmentacja obrazów cyfrowych z zastosowaniem teorii ...home.agh.edu.pl/~lesniak/wyklady/prezentacja5.pdf• algorytm Kruskala zamiast algorytmu Prima • (w mojej głowie przyspieszam](https://reader033.vdocuments.site/reader033/viewer/2022041817/5e5b87307091e16cc904dc23/html5/thumbnails/12.jpg)
opr. Łukasz ChlebdaSegmentacja obrazów cyfrowych - algorytmy grafowe
Algorytm Kruskala – daje w wyniku minimalne drzewo spinające grafu
spójnego G.
Przykład grafu oraz minimalnego drzewa spinającego tego grafu:
12
![Page 13: Segmentacja obrazów cyfrowych z zastosowaniem teorii ...home.agh.edu.pl/~lesniak/wyklady/prezentacja5.pdf• algorytm Kruskala zamiast algorytmu Prima • (w mojej głowie przyspieszam](https://reader033.vdocuments.site/reader033/viewer/2022041817/5e5b87307091e16cc904dc23/html5/thumbnails/13.jpg)
opr. Łukasz ChlebdaSegmentacja obrazów cyfrowych - obraz cyfrowy jako graf
Obraz cyfrowy jako graf
• Zakładamy, że piksele są 4 – sąsiadowi
• Krawędź grafu definiujemy jako granicę pomiędzy
pikselami p i q, jeżeli są one 4 – sąsiadami.
13
Każdej krawędzi przypisujemy wagę, którą
określamy następująco:
w(p, q) = H – | [f(p) – f(q)] |
gdzie H jest najwyższą wartością piksela na
obrazku, a f(p) i f(q) są wartościami pikseli
odpowiadających wierzchołkom p i q.
![Page 14: Segmentacja obrazów cyfrowych z zastosowaniem teorii ...home.agh.edu.pl/~lesniak/wyklady/prezentacja5.pdf• algorytm Kruskala zamiast algorytmu Prima • (w mojej głowie przyspieszam](https://reader033.vdocuments.site/reader033/viewer/2022041817/5e5b87307091e16cc904dc23/html5/thumbnails/14.jpg)
opr. Łukasz ChlebdaSegmentacja obrazów cyfrowych - obraz cyfrowy jako graf
Przykład obrazu cyfrowego oraz jego reprezentacja grafowa. Na
czerwono zaznaczona jest najkrótsza droga łącząca przeciwległe
brzegi grafu – wyznaczona algorytmem Dijkstry.
14
![Page 15: Segmentacja obrazów cyfrowych z zastosowaniem teorii ...home.agh.edu.pl/~lesniak/wyklady/prezentacja5.pdf• algorytm Kruskala zamiast algorytmu Prima • (w mojej głowie przyspieszam](https://reader033.vdocuments.site/reader033/viewer/2022041817/5e5b87307091e16cc904dc23/html5/thumbnails/15.jpg)
opr. Łukasz ChlebdaSegmentacja obrazów cyfrowych - opis metod grafowych
Metoda wykrywająca krawędzie
Okazuje się, że najkrótsze drogi w grafie odpowiadają znaczącym
zmianom jasności między dwoma pikselami w obrazie – czyli po
prostu krawędziom.
15
Metoda używana w tej pracy oparta jest na tzw. algorytmie A*, który
służy do znajdywania najkrótszej drogi pomiędzy dwoma danymi
wierzchołkami grafu, jednak nie gwarantuje minimalnej drogi
pomiędzy dwoma punktami.
![Page 16: Segmentacja obrazów cyfrowych z zastosowaniem teorii ...home.agh.edu.pl/~lesniak/wyklady/prezentacja5.pdf• algorytm Kruskala zamiast algorytmu Prima • (w mojej głowie przyspieszam](https://reader033.vdocuments.site/reader033/viewer/2022041817/5e5b87307091e16cc904dc23/html5/thumbnails/16.jpg)
opr. Łukasz ChlebdaSegmentacja obrazów cyfrowych - opis metod grafowych
Algorytm A*
• Opiera się na heurystyce - dzięki czemu jest znacznie szybszy
• Algorytm Dijkstry jest szczególnym przypadkiem algorytmu A* -
wtedy gdy nie korzystamy z żadnej heurystyki
Heurystyka jest to metoda znajdywania rozwiązań, dla której nie ma
16
Heurystyka jest to metoda znajdywania rozwiązań, dla której nie ma
gwarancji znalezienia rozwiązania optymalnego. Używa się jej, gdy
algorytm z przyczyn technicznych jest zbyt kosztowny. W przypadku
algorytmu A* heurystyka jest wykorzystywana do nakierowywania
pełnego algorytmu ku optymalnemu rozwiązaniu bez poświęcania jakości
rozwiązania.
![Page 17: Segmentacja obrazów cyfrowych z zastosowaniem teorii ...home.agh.edu.pl/~lesniak/wyklady/prezentacja5.pdf• algorytm Kruskala zamiast algorytmu Prima • (w mojej głowie przyspieszam](https://reader033.vdocuments.site/reader033/viewer/2022041817/5e5b87307091e16cc904dc23/html5/thumbnails/17.jpg)
opr. Łukasz ChlebdaSegmentacja obrazów cyfrowych - opis metod grafowych
• czułość - minimalna różnica pomiędzy dwoma pikselami 4 – sąsiadowymi,
która będzie traktowana jako krawędź. Krawędzie, których wagi są mniejsze
będą pomijane.
• maski - obrazek jest dzielony na maski o podanych przez użytkownika
rozmiarach, a algorytm jest wykonywany na każdej masce oddzielnie.
Parametry
17
rozmiarach, a algorytm jest wykonywany na każdej masce oddzielnie.
![Page 18: Segmentacja obrazów cyfrowych z zastosowaniem teorii ...home.agh.edu.pl/~lesniak/wyklady/prezentacja5.pdf• algorytm Kruskala zamiast algorytmu Prima • (w mojej głowie przyspieszam](https://reader033.vdocuments.site/reader033/viewer/2022041817/5e5b87307091e16cc904dc23/html5/thumbnails/18.jpg)
opr. Łukasz ChlebdaSegmentacja obrazów cyfrowych - opis metod grafowych
Metoda segmentacji grafowej
Dość skomplikowana metoda dzieląca obraz na obszary o podobnych
właściwościach – wykorzystująca m. in. minimalne drzewa spinające.
• graf jest konstruowany na takich samych zasadach, jak wcześniej
• zakładamy, że piksele są 4 lub 8 – sąsiadowe
18
Na podstawie pracy „Effcient Graph-Based Image Segmentation”
autora Pedro F. Felzenszwalb z Artificial Intelligence Lab – MIT.
• zakładamy, że piksele są 4 lub 8 – sąsiadowe
• w metodzie tej wykorzystałem algorytm Kruskala
• metoda ta wymaga posortowania na początku wszystkich krawędzi ze
względu na wagi – wykorzystałem do tego algorytm sortowania quicksort
![Page 19: Segmentacja obrazów cyfrowych z zastosowaniem teorii ...home.agh.edu.pl/~lesniak/wyklady/prezentacja5.pdf• algorytm Kruskala zamiast algorytmu Prima • (w mojej głowie przyspieszam](https://reader033.vdocuments.site/reader033/viewer/2022041817/5e5b87307091e16cc904dc23/html5/thumbnails/19.jpg)
opr. Łukasz ChlebdaSegmentacja obrazów cyfrowych - problemy
Napotkane problemy
• szybkość
• narzut pamięciowy
obrazek 150 x 125
19
18 750 wierzchołków
37 225 krawędzi
1 004 299 krawędzi
502 866 wierzchołków
obrazek 819 x 614
![Page 20: Segmentacja obrazów cyfrowych z zastosowaniem teorii ...home.agh.edu.pl/~lesniak/wyklady/prezentacja5.pdf• algorytm Kruskala zamiast algorytmu Prima • (w mojej głowie przyspieszam](https://reader033.vdocuments.site/reader033/viewer/2022041817/5e5b87307091e16cc904dc23/html5/thumbnails/20.jpg)
opr. Łukasz ChlebdaSegmentacja obrazów cyfrowych - problemy
20
![Page 21: Segmentacja obrazów cyfrowych z zastosowaniem teorii ...home.agh.edu.pl/~lesniak/wyklady/prezentacja5.pdf• algorytm Kruskala zamiast algorytmu Prima • (w mojej głowie przyspieszam](https://reader033.vdocuments.site/reader033/viewer/2022041817/5e5b87307091e16cc904dc23/html5/thumbnails/21.jpg)
opr. Łukasz ChlebdaSegmentacja obrazów cyfrowych - problemy
Jak przyspieszyłem działanie algorytmów
• w metodzie wykrywania krawędzi zamiast całego obrazka naraz –
tworzone są maski
• zanim utworzony zostanie graf – sprawdzane jest, czy na danej
masce w ogóle może wystąpić krawędź
21
• heurystyka
• quicksort
• algorytm Kruskala zamiast algorytmu Prima
• (w mojej głowie przyspieszam je także równolegle)
![Page 22: Segmentacja obrazów cyfrowych z zastosowaniem teorii ...home.agh.edu.pl/~lesniak/wyklady/prezentacja5.pdf• algorytm Kruskala zamiast algorytmu Prima • (w mojej głowie przyspieszam](https://reader033.vdocuments.site/reader033/viewer/2022041817/5e5b87307091e16cc904dc23/html5/thumbnails/22.jpg)
opr. Łukasz ChlebdaSegmentacja obrazów cyfrowych - problemy
Przydałoby się szybciej…
• algorytm Bernarda Chazelle – najszybszy obecnie
algorytm znajdujący minimalne drzewo spinające -
wykorzystujący tzw. „miękki stos”
22
Algorytm ten jest praktycznie liniowo zależny od
liczby wierzchołków oraz tzw. odwrotnej liczby
Ackermana.
![Page 23: Segmentacja obrazów cyfrowych z zastosowaniem teorii ...home.agh.edu.pl/~lesniak/wyklady/prezentacja5.pdf• algorytm Kruskala zamiast algorytmu Prima • (w mojej głowie przyspieszam](https://reader033.vdocuments.site/reader033/viewer/2022041817/5e5b87307091e16cc904dc23/html5/thumbnails/23.jpg)
opr. Łukasz ChlebdaSegmentacja obrazów cyfrowych - problemy
Nierozwiązany problem – narzut pamięciowy
• występuje przy metodzie segmentacji grafowej
• jeżeli starczy czasu – spróbuje zaimplementować inną strukturę
danych – na razie wykorzystuje dynamiczne listy wierzchołków i
krawędzi powiązanych ze sobą
23
krawędzi powiązanych ze sobą
![Page 24: Segmentacja obrazów cyfrowych z zastosowaniem teorii ...home.agh.edu.pl/~lesniak/wyklady/prezentacja5.pdf• algorytm Kruskala zamiast algorytmu Prima • (w mojej głowie przyspieszam](https://reader033.vdocuments.site/reader033/viewer/2022041817/5e5b87307091e16cc904dc23/html5/thumbnails/24.jpg)
opr. Łukasz ChlebdaSegmentacja obrazów cyfrowych - wstępne wyniki
Przykładowe wyniki – wykrywanie krawędzi:
24
![Page 25: Segmentacja obrazów cyfrowych z zastosowaniem teorii ...home.agh.edu.pl/~lesniak/wyklady/prezentacja5.pdf• algorytm Kruskala zamiast algorytmu Prima • (w mojej głowie przyspieszam](https://reader033.vdocuments.site/reader033/viewer/2022041817/5e5b87307091e16cc904dc23/html5/thumbnails/25.jpg)
opr. Łukasz ChlebdaSegmentacja obrazów cyfrowych - wstępne wyniki
25
![Page 26: Segmentacja obrazów cyfrowych z zastosowaniem teorii ...home.agh.edu.pl/~lesniak/wyklady/prezentacja5.pdf• algorytm Kruskala zamiast algorytmu Prima • (w mojej głowie przyspieszam](https://reader033.vdocuments.site/reader033/viewer/2022041817/5e5b87307091e16cc904dc23/html5/thumbnails/26.jpg)
opr. Łukasz ChlebdaSegmentacja obrazów cyfrowych - wstępne wyniki
26
![Page 27: Segmentacja obrazów cyfrowych z zastosowaniem teorii ...home.agh.edu.pl/~lesniak/wyklady/prezentacja5.pdf• algorytm Kruskala zamiast algorytmu Prima • (w mojej głowie przyspieszam](https://reader033.vdocuments.site/reader033/viewer/2022041817/5e5b87307091e16cc904dc23/html5/thumbnails/27.jpg)
opr. Łukasz ChlebdaSegmentacja obrazów cyfrowych - wstępne wyniki
27
![Page 28: Segmentacja obrazów cyfrowych z zastosowaniem teorii ...home.agh.edu.pl/~lesniak/wyklady/prezentacja5.pdf• algorytm Kruskala zamiast algorytmu Prima • (w mojej głowie przyspieszam](https://reader033.vdocuments.site/reader033/viewer/2022041817/5e5b87307091e16cc904dc23/html5/thumbnails/28.jpg)
opr. Łukasz ChlebdaSegmentacja obrazów cyfrowych - wstępne wyniki
Przykładowe wyniki – segmentacja grafowa
28
![Page 29: Segmentacja obrazów cyfrowych z zastosowaniem teorii ...home.agh.edu.pl/~lesniak/wyklady/prezentacja5.pdf• algorytm Kruskala zamiast algorytmu Prima • (w mojej głowie przyspieszam](https://reader033.vdocuments.site/reader033/viewer/2022041817/5e5b87307091e16cc904dc23/html5/thumbnails/29.jpg)
opr. Łukasz ChlebdaSegmentacja obrazów cyfrowych - wstępne wyniki
29
![Page 30: Segmentacja obrazów cyfrowych z zastosowaniem teorii ...home.agh.edu.pl/~lesniak/wyklady/prezentacja5.pdf• algorytm Kruskala zamiast algorytmu Prima • (w mojej głowie przyspieszam](https://reader033.vdocuments.site/reader033/viewer/2022041817/5e5b87307091e16cc904dc23/html5/thumbnails/30.jpg)
opr. Łukasz ChlebdaSegmentacja obrazów cyfrowych - wstępne wyniki
30
![Page 31: Segmentacja obrazów cyfrowych z zastosowaniem teorii ...home.agh.edu.pl/~lesniak/wyklady/prezentacja5.pdf• algorytm Kruskala zamiast algorytmu Prima • (w mojej głowie przyspieszam](https://reader033.vdocuments.site/reader033/viewer/2022041817/5e5b87307091e16cc904dc23/html5/thumbnails/31.jpg)
opr. Łukasz ChlebdaSegmentacja obrazów cyfrowych - koniec
Dziękuję za uwagę.
31