Politechnika Łódzka



Pobieranie 6.5 Mb.
Strona10/54
Data29.10.2017
Rozmiar6.5 Mb.
1   ...   6   7   8   9   10   11   12   13   ...   54

Wstęp

Informatyka w dużej mierze polega na czynieniu możliwie dobrego użytku z danych. „Czynienie dobrego użytku” oznacza tu m. in. analizę i kategoryzację danych, trans­misję i wyszukiwanie danych oraz wygodne metody ich prezentacji. Rozpoznawanie obrazów podejmuje problemy centralne dla całej informatyki: analizę danych pojmowaną jako znajdowanie trendów i zależności oraz predykcję właściwości nowych danych; ich reprezentację i interpretację; selekcję informacji, czyli odrzucenie danych nieistotnych; wreszcie organizację danych, czyli dostosowanie własności konkretnego algorytmu do zasobów sprzętowych.

Danych przetwarzanych cyfrowo przybywa, gdyż rosną przepustowości kanałów informacyjnych (Internetu, sieci lokalnych, magistral etc.), coraz bardziej dostępne są nowoczesne źródła pozyskiwania informacji, np. aparaty cyfrowe, wreszcie: coraz więcej osób w niebanalny sposób korzysta z komputerów i rozumie, iż zagadnienia, którymi zajmują się w pracy czy w domu, często dadzą rozwiązać się przy pomocy metod informatycznych.

Narasta zrozumienie faktu, iż komputer może być czymś więcej niż nowoczesną maszyną do pisania, rozbudowanym kalkulatorem, uniwersalnym magnetowidem czy automatem do gier. Upowszechnienie się w ostatnich latach technologii np. rozpoz­nawania pisma maszynowego i ręcznego oraz rozpoznawania mowy wynika po części z „brutalnej siły” dzisiejszych procesorów, ale także z coraz doskonalszych algorytmów, zaliczanych do metod rozpoznawania obrazów i dziedzin pokrewnych.

Moc przetwarzania to nie wszystko. Przykładowo, słownik ortograficzny języka polskiego w edytorze tekstu MS Word 2000 oferuje nieco gorszą jakość podpowiedzi niż analogiczny słownik w wersji Word 97.1 Nasuwa się proste wyjaśnienie tego fenomenu: w wersji 2000 powiększono bazę słów, nie zmieniając przy tym algorytmów przybliżonego dopasowywania. Powiększenie słownika oznaczało dodanie pewnej liczby rzadko występujących słów, które tym samym stosunkowo często (zbyt często w praktyce) pojawiają się na liście podpowiedzi. Dotykamy tu kluczowej kwestii rozpoznawania obrazów: pewne dane są „mniej ważne” od innych, a zatem dobry algorytm powinien bardziej skupiać się na tym, co jest „esencją” niż na danych mniejszej wagi.

Skupienie się na danych istotnych dotyczy zbiorów skończonych, czyli przypadków realnych. Klasyczna reguła klasyfikacyjna k najbliższych sąsiadów (k‑NN), która jest punktem wyjścia dla większości rozważań zamieszczonych w niniej­szej rozprawie, jest asymptotycznie optymalna, co wszak wcale nie musi oznaczać najlepszej predykcji w sytuacjach praktycznych. Spostrzeżenie to było inspiracją do badań nad konstrukcją klasyfikatorów, które — pomimo tego, że ich jakość w przypadku asymptotycznym pozostaje nieznana — w praktyce osiągają często błędy mniejsze niż reguła k-NN.

Niniejsza rozprawa prezentuje szereg algorytmów klasyfikacji konkurencyjnych wobec metod podawanych w literaturze pod względem jakości i/lub szybkości klasyfikacji. Wielość zaproponowanych metod wiąże się z różnorakością wymogów dotyczących szybkości klasyfikacji i trafności predykcji w rozmaitych zastosowaniach. Ogólnie biorąc, zagadnieniem, którego dotyczy niniejsza praca, jest klasyfikacja nieparametryczna nadzorowana. Nieparametryczność oznacza, iż w danym zadaniu nie jest znana gęstość rozkładu prawdopodobieństw przynależności punktów przestrzeni cech do klas. Jest to sytuacja bardzo często występująca w praktyce i będąca niemałym wyzwaniem. Słowo „nadzorowana” informuje, że rozpoznawanie obiektów korzysta z tzw. zbioru uczącego, tj. zbioru obiektów ze znanymi etykietami klas.

Mało zbadanym podejściem do konstrukcji klasyfikatorów jest wykorzystanie koncepcji symetrycznego sąsiedztwa, tj. sąsiedztwa uwzględniającego nie tylko bliskość, ale i przestrzenny układ zbioru sąsiadów (O’Callaghan, 1975). Jednym z nielicznych algorytmów tej kategorii jest reguła decyzyjna „k scentrowanych sąsiadów” (k Nearest Centroid Neighbors, k-NCN) (Sánchez i in., 1997a). W niniejszej pracy zaproponowano nową regułę decyzyjną k Near Surrounding Neighbors (k-NSN), zainspirowaną regułą k-NCN i ulepszającą jej sąsiedztwo w wyniku stochastycznej procedury zaliczanej w literaturze do klasy random mutation hill climbing. Zapropono­wana reguła k-NSN zwykle osiąga wyższą jakość predykcji niż k-NCN i znacząco wyższą jakość predykcji niż k-NN.

Innym — bardzo zresztą w ostatnich latach modnym — kierunkiem poszukiwań klasyfikatorów o możliwie wysokiej zdolności predykcji, jest zastosowanie struktury sieciowej zespołu klasyfikatorów. Topologie sieci klasyfikatorów są rozmaite: od równoległej sieci komunikujących lub nie komunikujących się komponentów, poprzez klasyfikatory lokalnie wybierające odpowiedni dla danej próbki testowej klasyfikator składowy, aż po klasyfikator kaskadowy (wieloetapowy), w którym „łatwe” próbki klasyfikowane są w krótszym czasie niż próbki „trudne”. W pracy zaproponowano schematy dotyczące wszystkich trzech naszkicowanych głównych koncepcji klasyfi­katorów o strukturze sieciowej.

Drugim podstawowym aspektem klasyfikacji jest jej szybkość. W przypadku klasyfikatorów minimalnoodległościowych, a zwłaszcza reguły 1-NN, możliwe są dwa, do pewnego stopnia niezależne podejścia: użycie algorytmów szybkiego szukania najbliższego sąsiada (sąsiadów) oraz redukcja zbioru odniesienia. Do obu wymienio­nych zagadnień niniejsza praca wnosi pewien wkład. Po pierwsze, podano algorytm szukania najbliższego sąsiada w metryce miejskiej w czasie zależnym subliniowo od liczności zbioru odniesienia w najgorszym przypadku. Algorytm ten wykorzystuje pewną własność użytej metryki i cechuje się względną prostotą oraz elastycznością (możliwość użycia współczynnika kompromisu między kosztem przetwarzania wstęp­nego a czasem szukania). Wysokie koszta wstępnej obróbki są, jak się wydaje, nie do uniknięcia w tej klasie algorytmów. Warto podkreślić, że algorytm ten (przy założeniu korzystnych parametrów wejściowych zbioru) można zastosować w połączeniu z nie­mal każdym minimalnoodległościowym algorytmem klasyfikacji, zaś minimalizacja czasu w najgorszym przypadku predystynuje go do zastosowań on-line.

Odnośnie kwestii redukcji zbioru odniesienia, zaproponowano w rozprawie nowe podejście. Jest nim algorytm lokalnego wyboru zbioru zredukowanego, tj. taki, w któ­rym dana próbka testowa jest klasyfikowana przy użyciu jednego z wielu uprzednio wygenerowanych zbiorów zredukowanych, zaś samo kryterium wyboru bazuje na klasteryzacji lub podziale przestrzeni hiperpłaszczyznami i jest tym samym bardzo szybkie.

Rozprawa niniejsza składa się z siedmiu rozdziałów. Rozdział 1 wprowadza w tematykę rozpoznawania obrazów, ze szczególnym uwzględnieniem klasyfikatorów minimalnoodległościowych. Przedmiotem Rozdziału 2 jest jedno z ważniejszych zagadnień dziedziny — selekcja cech. Rozdział 3 szkicuje główne koncepcje klasyfi­katorów o strukturze sieciowej oraz przedstawia wyniki eksperymentów autora pracy z własną modyfikacją klasyfikatora „wiele podzbiorów cech” (Multiple Feature Subsets, MFS), będącego równoległym podejściem do problemu selekcji cech. Wyniki te — jak dotychczas, dość wstępne — sugerują wyższość zaproponowanego wariantu MFS nad tradycyjnym, tj. nie opartym na równoległości, podejściem do selekcji cech. Rozdziały 4 i 5 poświęcone są problemowi szybkiego szukania najbliższego sąsiada. W Rozdziale 4 opisano ten problem, jego warianty i zastosowania, a także dokonano obszernego przeglądu istniejących rozwiązań heurystycznych. W Rozdziale 5 przedsta­wiono, wraz z wynika­mi implemen­tacji, wspomniany wyżej nowy algorytm szukania najbliższego sąsiada w metryce miejskiej. Algorytm ten cechuje się elastycznością i stosunkową prostotą. Rozdział 6 kontynuuje rozważania nad aspektem szybkościowym klasyfikacji; tym razem podjęte jest zagadnienie redukcji zbioru odniesienia. W rozdziale tym opisano opracowany przez autora rozprawy algorytm lokalnego wyboru zbioru odniesienia dla reguły 1-NN przewyższający w testach algorytmy tradycyjne (tj. działające z pojedyn­czym zbiorem odniesienia) tak pod względem trafności predykcji, jak i pod względem szybkości działania. Ponadto w rozdziale zamieszczono obszerne eksperymentalne porównanie zaproponowanego podejścia z algorytmami redukcji podawanymi w litera­turze. Ostatni rozdział dotyczy konstrukcji algo­rytmów o możliwie wysokiej jakości klasyfikacji. Zaprezentowano w nim nowy algorytm k‑NSN działający w oparciu o koncepcję symetrycz­nego sąsiedztwa, schemat równoległy z prostym głosowaniem wykorzystu­jący wiele klasyfikatorów składowych typu „k sąsiadów” (tj. k-NN, k-NCN lub k-NSN), z których każdy może działać w oparciu o „własną” wartość parametru k, a także rodzinę klasyfikatorów kaskadowych o korzystnych stosunkach jakości predykcji do szybkości klasyfikacji, intensywnie wykorzystującą obie wspomniane właśnie koncepcje autora rozprawy.

Niemal każdy z algorytmów zaprezentowanych w niniejszej rozprawie, stano­wiący własne osiągnięcie autora, cechuje się elastycznością, a zatem podatnością na dalsze ulepszenia i modyfikacje, a także możliwością dostosowania jego właściwości do różnorakich praktycznych aplikacji. Zaproponowane algorytmy przetestowano na szeregu rzeczy­wistych i syntetycznych zbiorów danych. Zbiory te dotyczą takich dziedzin, jak m. in. medycyna, kontrola jakości w przemyśle i detekcja obiektów na zdjęciach lotniczych; większość z nich jest szeroko używana w literaturze przedmiotu. Dokładny opis użytych rzeczywistych zbiorów danych zawiera Załącznik. Większość wyników zaprezentowanych w rozprawie została wcześniej opublikowana przez autora na konfe­rencjach krajowych (SiS’99, SiS’00, KOSYR’01, SiS’01, SiS’02, KOSYR’03) lub zagranicznych (konferencje IEEE: TCSET’02, CADSM’03), w pismach naukowych (Biocybernetics and Biomedical Engineering, Prace Przemysłowego Instytutu Elektro­niki), a także zamieszczono w przygotowywanym do druku rozdziale monografii „Frontiers of Remote Sensing Info Processing” (ed. S. Patt, World Scientific Publishing Co. Pte. Ltd., Singapur). Ogółem, lista publikacji autora rozprawy liczy 29 pozycji, z czego w rozprawie zacytowanych jest 18 prac, ściśle związanych z przedmiotem doktoratu.

Koncepcja klasyfikatorów minimalnoodległościowych, tj. związanych z regułą k najbliższych sąsiadów i jej odmianami, liczy już ponad pół wieku, a jednak, zdaniem autora niniejszej rozprawy, nie spotkała się do tej pory z takim odbiorem, na jaki zasługuje. Autor wyraża nadzieję, że niniejsza praca choć w niewielkim stopniu przyczyni się do zwiększenia zainteresowania tym kierunkiem, zarówno w aspekcie teoretycznym, jak i aplikacyjnym.


Jak wyżej wspomniano, wszystkie algorytmy zaproponowane w rozprawie zostały zaimplementowane i przetestowane. Ponadto autor rozprawy zaimplementował wszystkie wykorzystywane w porównaniach algorytmy znane z literatury. Naturalnie, żaden naukowiec nie zliczy własnych koncepcji, które okazały się chybione bądź zostały zarzucone. W podobnych bólach rodziła się i ta praca. Większość kodów źródłowych została napisana w języku Delphi i uruchomiona na komputerze PC Celeron 466. Algorytm szybkiego szukania najbliż­szego sąsiada został napisany w języku C++. Prace związane z implementacją algorytmów wymagały od autora rozprawy nie tylko wieloletniej praktyki programi­stycznej, ale i znajomości wybranych struktur danych oraz — w ograniczonym zakresie — wiedzy z dziedziny analizy algorytmów.
W tym miejscu chciałbym złożyć wyrazy podziękowania kilku osobom. Dziękuję mojemu promotorowi prof. Dominikowi Sankowskiemu za opiekę nad pracą, dr. Adamowi Jóźwikowi za wprowadzenie mnie w dziedzinę rozpoznawania obrazów, niezliczone wskazówki i interesujące dyskusje, kol. Sebastianowi Deoro­wiczowi za liczne ciekawe rozmowy, kol. Zofii Stawskiej za wnikliwą lekturę tekstu i szereg cennych uwag oraz dr. Arne Anderssonowi z uniwersytetu w Uppsali w Szwecji za zgodę na zamieszczenie Rys. 1.5 pochodzącego z jego pracy. Last not least — dziękuję Żonie i Rodzicom za wsparcie duchowe i wiele cierpliwości, tak potrzebne w tym ciężkim, ale ekscytującym okresie pisania doktoratu.

Cel, zakres i tezy pracy

Celem pracy jest skonstruowanie nowych algorytmów klasyfikacji bezparametrycznej nadzorowanej, należących do rodziny klasyfikatorów minimalnoodległościowych, tj. wywodzących się z reguły k najbliższych sąsiadów (k-NN). Założono, że funkcja kosztu jest symetryczna, tj. że koszt każdej pomyłki klasyfikatora jest taki sam.

Duży nacisk w pracy położono na aspekt szybkościowy klasyfikacji, czego owocem jest m. in. nowy algorytm szybkiego szukania najbliższego sąsiada w metryce miejskiej. Algorytm ten może być wykorzystany w wielu klasyfikatorach minimalno­odległościowych, co więcej, w naturalny sposób można sterować kompromisem między kosztem pamięciowo-czasowym wstępnej obróbki a kosztem szukania. Algorytm ten cechuje się czasem szukania subliniowym w liczności zbioru w najgorszym przypadku, co umożliwia wykorzystanie go zwłaszcza w zastosowaniach klasyfikacji on-line. Użycie metryki miejskiej wypły­wa z teoretycznych i praktycznych przesłanek, a ponadto jest korzystne dla szybkości działania algorytmu.

Zakres prac obejmował także zagadnienie redukcji zbioru odniesienia dla klasyfikatora typu jeden najbliższy sąsiad (1-NN) oraz poprawę jakości klasyfikacji przy użyciu algorytmów wykorzystujących koncepcję symetrycznego sąsiedztwa oraz przy użyciu klasyfikatorów o strukturze sieciowej (równoległych); idee niniejsze umożliwiły ponadto zaprojektowanie rodziny klasyfikatorów kaskadowych cechujących się korzystną relacją trafności predykcji do szybkości klasyfikacji.



Weryfikację opracowanych algorytmów autor rozprawy przeprowadził korzysta­jąc z szeregu rzeczywistych i syntetycznych zbiorów danych. Wykorzystanymi zbiorami rzeczywistymi były:

  • szeroko używane w literaturze przedmiotu zbiory Bupa, Glass, Iris, Pima i Wine, dostępne w „Machine Learning Repository” Uniwersytetu Kalifornijskiego w Irvine (Merz i Murphy, 1996);

  • zbiory Ferrites, FerritesOld i RB8.PAT, dotyczące kontroli jakości rdzeni ferrytowych, które były produkowane w zakładach „Polfer” w Warszawie (Nieniewski i in., 1999; Jóźwik i in., 1996);

  • zbiór Remotes, związany z zadaniem detekcji obiektów (pól upraw) na zdjęciach lotniczych wykonanych w rejonie Feltwell w Wielkiej Brytanii (Roli, 1996). Dane te wyko­rzystywane były w grancie NATO nr PST.CLG.977258 (2001–2002) dotyczącym zastosowań niepara­metrycznych metod rozpoznawania obrazów w aplikacjach remote sensing, którego autor niniejszej rozprawy był uczestnikiem (kierownik grantu: prof. C.-H. Chen z N. Dartmouth Coll., MA, USA).



Tezy rozprawy sformułowano następująco:

  1. W niskich wymiarach () możliwe jest znajdowanie najbliższego sąsiada w deterministycznym subliniowym czasie w metryce miejskiej.

  2. Lokalny wybór zredukowanego zbioru odniesienia prowadzi do osiągnięcia wyższej jakości klasyfikacji niż oferowana przez pojedynczy zbiór zredukowany, zwłaszcza przy bardzo wysokich wymaganiach szybkościowych nałożonych na klasyfikację.

  3. Możliwe jest stworzenie równoległej sieci klasyfikatorów typu „k sąsiadów”, osiągającej wyższą jakość predykcji niż klasyfikator bazowy przy umiarkowanym spowolnieniu klasyfikacji, umożliwiającej ponadto, w połączeniu z koncepcją tzw. symetrycznego sąsiedztwa, projektowanie klasyfikatorów kaskadowych o korzyst­nych relacjach szybkości do jakości klasyfikacji.

Rozdział I

Podstawy rozpoznawania obrazów
Podstawowymi zagadnieniami dziedziny zwanej rozpoznawaniem obrazów (ang. pattern recognition) są regresja i klasyfikacja.

Regresją nazywamy predykcję wartości ciągłej numerycznej zmiennej wyjściowej obiektu na podstawie d cech (ang. features, attributes) wejściowych (Duda i Hart, 1973; Bhattacharyya i Johnson, 1977). Innymi słowy, regresja polega na znalezieniu funkcji możliwie dobrze aproksymującej prawdziwe wyjścia obiektów (jakość estymowana jest przy użyciu pewnej miary, np. średniego błędu kwadratowego, na wyodrębnionym zbiorze testowym).

Klasyfikacja jest to predykcja wartości zmiennej dyskretnej obiektów opisanych d-wymiarowymi wektorami cech. Różnica między regresją a klasyfikacją polega więc na tym, że odgadywane wyjścia w pierwszym zagadnieniu są ciągłe, a w drugim dyskretne i na ogół bez wprowadzonej relacji porządku między nimi. Wspomniane wartości dyskretne identyfikowane są z klasami, a ściślej z etykietami (nazwami) klas.

Można wyróżnić pojęcia: klasyfikacja nadzorowana (ang. supervised classifi­cation) i nienadzorowana (ang. unsupervised classification). W pierwszym przypadku etykiety klas nieznanych obiektów odgaduje się na podstawie zbioru obiektów o zna­nych etykietach; jest to tzw. zbiór uczący (ang. training set, learning set). Właściwość predykcji etykiet nieznanych próbek na podstawie danego zbioru uczącego nazywa się również zdolnością generalizacji klasyfikatora. W przypadku klasyfikacji nienadzoro­wanej zbiór uczący nie jest dany. Zadanie polega wówczas na rozdzieleniu zbioru obiektów na dwa lub więcej podzbiorów w taki sposób, aby obiekty w obrębie pojedynczego podzbioru były do siebie możliwie podobne (w przestrzeni zadanych cech i w sensie określonej metryki lub miary podobieństwa). Tak utworzone podzbiory nazywamy często klastrami (ang. clusters), a proces wyodrębniania klastrów — klasteryzacją (ang. clustering). Konkretnymi przykładami klasteryzacji są np. segmentacja obiektów w obrazach 2- i 3-wymiarowych lub kategoryzacja dokumentów tekstowych np. na potrzeby wyszuki­warek sieciowych.

Przedmiotem niniejszej pracy jest klasyfikacja nadzorowana. Ten rodzaj klasy­fikacji ma bardzo liczne zastosowania, by wymienić choćby wspomaganą komputerowo diagnostykę medyczną, kontrolę jakości artykułów przemysłowych, detekcję obiektów na zdjęciach satelitarnych i lotniczych (remote sensing) czy rozpoznawanie pisma maszynowego i ręcznego (Optical Character Recognition, OCR).

Należy dodać, iż metody rozwijane w rozprawie dotyczą klasyfikacji nieparametrycznej, tj. dotyczącej przypadku, gdy nie jest znany a priori rozkład prawdopodobieństw przynależności obiektów przestrzeni cech do klas. Jedyne informa­cje umożliwiające wówczas klasyfikację niesione są przez zbiór uczący. Taka sytuacja ma bardzo często miejsce w praktyce i pojawia się wszędzie tam, gdzie brakuje wystar­czających podstaw do przyjęcia z góry odpowiedniego modelu probabilistycznego dla rozważanego problemu. W niniejszej pracy założono ponadto, że zbiór uczący jest niezmien­ny dla danego zadania, tj. w szczegól­ności, w czasie klasyfikacji kolejnych obiektów nie wolno korzy­stać z żadnej informacji dotyczącej już sklasyfikowanych próbek.


1.1. Wiadomości wstępne

Każdy algorytm klasyfikacji ma swoje obciążenie (ang. bias), które można zdefiniować jako „dowolną podstawę dla preferowania tej, a nie innej, generalizacji, za wyjątkiem ścisłej zgodności z obserwowanym zbiorem uczącym” (Mitchell, 1980). Innymi słowy, jedynie reguła, która próbki testowe o wartościach dokładnie pokrywają­cych się z pewnym obiektem (obiektami) zbioru testowego przypisuje do klasy tego obiektu(-ów), a w pozostałych przypadkach powstrzymuje się od decyzji, jest „sprawiedliwa”. Każda inna reguła decyzyjna obarczona jest obciążeniem, czyli arbi­tralnie wybraną „skłonnością” do podejmowania takiej, a nie innej, decyzji. Istnieje tzw. prawo zachowania dla generalizacji (ang. conservation law for generalization performance), na mocy którego żadne obciążenie reguły decyzyjnej nie może owocować wyższą średnią jakością predykcji od jakiegokolwiek innego obciążenia (uwzględniając także losowe zgadywanie), jeśli rozpatrujemy wszystkie możliwe problemy (Wolpert, 1993; Schaffer, 1994). Brzmi to skrajnie pesymistycznie, pamiętać jednak trzeba, że w praktyce pewne rozkłady występują znacznie częściej niż inne i dzięki temu prawo zachowania dla generalizacji ważne jest jedynie w teorii.

W rozważaniach nad konstrukcją klasyfikatora często przytacza się zasadę metodologiczną znaną pod nazwą brzytwy Ockhama, którą można sformułować w naszym kontekście następująco (Blumer i in., 1987): „należy zawsze preferować prostszą z dwóch konkurencyjnych (tj. oferujących podobną jakość na zbiorze uczącym) hipotez”. Uzasadnia się to przy pomocy argumentu kombinatorycznego: hipotez prostych jest mniej niż hipotez złożonych, dlatego prawdopodobieństwo, iż hipoteza prostsza dobrze pasuje do zbioru uczącego w wyniku przypadku jest mniejsze niż analogiczne prawdopodobieństwo dla hipotezy bardziej złożonej (Mitchell, 1997). Domingos (1998) przeprowadza dogłębne rozważania nt. interpretacji brzytwy Ockha­ma, wyciągając wniosek: „jeśli model o niskim błędzie na zbiorze uczącym został znaleziony w wyniku inspekcji dostatecznie małej liczby modeli, to jest prawdopo­dobne, że będzie on oferował także niski błąd na zbiorze testowym”. Zauważmy, iż w świetle tej konkluzji wybrany model klasyfikatora nie musi koniecznie być prosty — wystarczy, jeśli jego znalezienie nie wymagało przeglądu zbyt wielu modeli, a już można praktycznie nie obawiać się znaczących rozbieżności między błędem na zbiorze uczącym a błędem na zbiorze testowym.
1.1.1. Definicja zadania klasyfikacji nadzorowanej

Niech T = {x1, ..., xn} będzie zbiorem wektorów postaci xi = [xi,1, ..., xi,d] i niech będzie dane przyporządkowanie:



, (1.1)

Pobieranie 6.5 Mb.

Share with your friends:
1   ...   6   7   8   9   10   11   12   13   ...   54




©operacji.org 2020
wyślij wiadomość

    Strona główna