Jesteś tutaj:Zodiaq3d.info\
 |
Co to jest wogóle DMprojekt?? |
DMprojekt to skrót od Data Mining Projekt. Jest to aplikacja którą
sam pisałem jako projekt inżynierski z mojej specjalizacji:
DataMining - Wydobywanie i Wizualizacja Wiedzy. DataMining to
ogólnie rzecz biorąc taka analiza danych (wielu różnych próbek) w
wyniku której można dokonać klasyfikacji nowych, niepełnych danych.
Ma swoje zastosowania w wielu dziedzinach - do najważniejszych
należy zaliczyć:
- badania rynkowe - określanie opłacalności udzielania
pożyczek/kredytów
- chirurgia - rozpoznawanie typu góza na podstawie zdjęć
- ropoznawania pisma - np na pocztach przyspieszając segregacje
listów, czy w bankach
- wiele innych zastosowań gdzie możliwy jest dostęp do
starszych danych a wymagana jest klasyfikacja nowych
W ramach mojego projektu zajmowałem się roznpoznawaniem pisma
ręcznego. Skupiłem się na pojedyńczych cyfrach, a zbiór na którym
działa mój program podam zaraz. Aplikacje działającą pod system
Windows napisałem całkowicie sam, oraz całkowicie w WinAPI (jest to
zarazem pierwsza moja aplikacja w pełni napisana w WinAPI - dużo
roboty z tym miałem).
Aplikacja działa w trzech fazach:
- filtrowanie obrazu cyfr (dane źródłowe oraz docelowy to pliki
binarne)
- wydobywanie cech oraz dziele danych na dwa zbiory (dane
źródłowe to plik binarny, dane docelowe to pliki tekstowe)
- ostateczna klasyfikacja (cyfry z drugiego zbioru rozpoznawane
są na podstawie cyfr z pierwszego, dane źródłowe oraz wynik to
pliki tekstowe)
Wszystko działa wielowątkowo, a dzięki zastosowanemu podejściu
końcowy poziom klasyfikacji dochodzi do 98%.
 |
O co biega w pierwszej fazie? |
Ponieważ obraz cyfr dość często zawiera pewne 'szumy' (czasami są
to poszarpane boki, a czasami występują nawet niezwiązane z obrazem
cyfry jakieś maźnięcia - najprawdopodniej błędy podczas skanowania)
dlatego dobrze jest najpierw dokonać ich eliminacji. Właśnie tym
zajmuje się się program w fazie pierwszej.

Powiększenie znajdziesz tutaj [52.1KiB]
|
Program w fazie pierwszej pozwala określić parametry
filtrowania. Analiza obrazu dokonywana jest w odpowiednim promieniu
dla każdego punktu cyfry. Zgodnie w określonymi programi w danym
miejscu powstaje nowy czarny punkt, zamazywany jest poprzedni lub
nie są wprowadzane zmiany. Wynik działania można obserwować jeśli
zostanie włączona opcja pauzy po każdym filtrowaniu.
W fazie pierwszej można określić:
- czas pokazywania filtrowanej cyfry (w sekundach)
- promień analizy obrazu dla każdego badanego piksela (wartość od
1 do 3)
- próg dolny oraz górny - zakres zależny od wybranego
promienia
ale także
- plik źródłowy - zawierający obrazy cyfr
- plik wynikowy - do którego zostanie zapisany wynik
filtrowania
Ponieważ dane są zapisywane dokładnie w takiej samej formie
jak dane źródłowe to zbiór początkowy można filtrować wiele razy.
Jednak należy pamiętać że za duże wartości parametrów mogą
powodować niepożądane efekty - skrajnie można doprowadzić do prawie
całkowitego zaniku obrazu cyfry (program posiada zabezpiecznie
przed całowitym zanikiem) czy ogromne pogrubie uniemożliwiające
rozpoznanie. |
 |
A jak działa faza druga?? |
Druga faza to rdzeń programu, zawiera najwięcej autorskich pomysłów
na wydobycie atrybutów z obrazu.
W tej fazie program dokonuje wydobywania pewnych atrybutów
(zależnych od wybranych opcji) ze zbioru źródłowego, a wynik
zapisuje do dwóch oddzielnych plików tekstowych (dane treningowe
oraz dane testowe). W aplikacji można wybrać od 1 do 5 różnych
technik analizy obrazu:
- badanie zaczernienia
- analiza pozioma
- analiza pionowa
- analiza kątowa
- analiza narożna
Dodatkowo bardzo ważnym parametrem jest określenie podziału na
pliki wynikowe. Wiadomo że im więcej danych program uzyska na dane
treningowe tym lepiej będzie mógł rozpoznać dane testowe. |

Powiększenie znajdziesz tutaj [58.5KiB]
|
 |
A faza trzecia? Jak działa? |
W ostatniej fazie dokonywana jest klasyfikacja cyfr -
wykorzystywane są dwa pliki uzyskane z części drugiej. Po
odpowiednim przetworzeniu danych treningowych (zbiór I), do analizy
brane są kolejne atrybuty cyfr ze zbioru testowego (zbiór II). W
tym momencie program zapomina o rodzaju analizowanej cyfry i
sam próbuje go określić. Po wszystkich etapach analizy uzyskiwany
jest wynik działania i wartość porównywana z prawdziwym typem cyfry
(w celu określenia poprawności rozpoznania typu).

Powiększenie znajdziesz tutaj [47.6KiB]
|
W fazie trzeciej, do znalezienia najbliższych elementów
zastosowałem znany algorytm K-NN (k-Nearest Neighbour), do którego
jednak wprowadziłem szereg modyfikacji znacznie przyspieszających
działanie (ukrytych w samym kodzie). Głównym parametrem w tej
części działania programu jest określenie wartości K. Należy także
wybrać oczywiście pliki źródłowe (uzyskane w wyniku fazy drugiej).
Aktualne wyniki działania pokazywane są na bierząco w odpowednim
polu tekstowym.
Mimo że dopiero w tej fazie uzyskiwane są końcowe wyniki, to jednak
największy wpływ na poziom klasyfikacji ma faza druga oraz
określone tam parametry. |
 |
Pliczki, pliczki! Gdzie są pliczki?? |
Zbiór na którym działa program znajdziesz tutaj.
[2.64MiB]
Aplikacje zaś możesz ściągnąć z tej lokalizacji.
[129.6KiB]
|