Marcin Nieściur projekt AiPO Szacowanie wartości monet na obrazach. 1. Wstęp. Celem projektu było stworzenie pluginu do programu ImageJ pozwalającego na szacowanie wartości monet znajdujących się na obrazach w wyniku przetwarzania obrazu. 2. Założenia. Przykładowy obraz. Ze względu na złożoność problemu wprowadzono szereg założeń które znacząco ułatwiają problem oraz przyśpieszają obliczenia : 1. Rozpatrujemy wyłącznie monety polskie : 5-złótówka, 2-złótówka oraz 1-złótówka. 2. Na obrazku muszą znajdować się co najmniej dwie różne monety. 3. Jest dopuszczalne nakładanie się monet na siebie. 4. Co najmniej jedna moneta nie jest połączona (nie nakłada się) z innymi. 5. Tło jest białe. 3. Wykrywanie monet na obrazie. W celu wykrycia monet przeprowadzamy szereg operacji na obrazie: 1. Konwersja do skali szarości. 2. Binaryzacja. 3. Dylatacja. 4. Outline (zostają wyłącznie kontury obiektów). 5. Plugin ParticleAnalizer (dostępny w ImageJ). W wyniku ostatniej operacji otrzymujemy tablice obiektów Roi (a rectangular region of interest) które są wyciętymi obszarami obrazu zawierającymi monety, również te złączone. 1
Dla obiektów Roi zawierających pojedyncze monety, obliczamy ich promienie wiedząc że, monety (okręgi) są wpisane w kwadrat (obszar Roi). W przypadku gdy mamy do czynienia z obiektami Roi których obszar znacząco przewyższa pozostałe obszary, przystępujemy do wykrywania złączonych monet przy pomocy transformaty Hougha. Opis transformaty Hougha Wiemy, że okrąg można wyrazić za pomocą wzoru: (x a) 2 + (y b) 2 = r 2, (a, b) R 2, r R Gdzie a i b są współrzędnymi okręgu, a r jest promieniem. Zapis w formie parametrycznej. x = a + rcos(θ) y = b + rsin(θ) θ [0, 2π) Przyjmując współrzędne środka okręgu a i b oraz θ w zakresie od 0 do 360 stopni możemy sprawdzić czy piksele obrazu o współrzędnych x i y mają kolor czarny. Im więcej czarnych pikseli leży na okręgu tym większe prawdopodobieństwo że dany punkt jest środkiem monety. Zastosowanie transformaty Hougha powoduje znaczący wzrost czasu obliczeń. Aby przyśpieszyć obliczenia trzeba ograniczyć zakres promienia r. 4. Szacowanie wartości monet. Szacowanie wartości monet odbywa się poprzez porównywanie stosunków ich promieni Wzorcowe stosunki promieni monet obliczono na podstawie danych dostępnych na stronie Narodowego Banku Polskiego : public static final Float ratio5to1 = 1.043f; public static final Float ratio5to2 = 1.116f; public static final Float ratio1to2 = 1.070f; public static final Float ratiotwothesamecoins = 1.0f; Szukamy takiego wzorcowego stosunku promieni którego różnica z obliczonym stosunkiem dwóch promieni monet (promień największy / dowolny promień) będzie jak najmniejsza. Następnie na podstawie znalezionego stosunku przypisujemy monetom wartości. 2
Poniżej zostały zaprezentowane przykładowe obrazy wraz z oknem prezentującym oszacowanie: 3
4
W przypadku ostatniego oszacowania mamy do czynienia z błędnym przypisaniem 1-złotówkom wartości 2. Jest to spowodowane małą różnicą między stosunkami 1-złotówki do 2-złotówki i 5-złotówki do 1-złotówki. 5. Podsumowanie. Projekt spełnia postawione cele. Szacowanie wartości nie nakładających się monet jest bardzo szybkie. Dzięki zastosowaniu obiektów Roi, możemy monety będące wyodrębnionymi obrazami poddać dalszemu przetwarzaniu. Zastosowanie transformaty Hougha do wykrywania nakładających się monet daje zadowalające rezultaty ale jest czasochłonne. Aby przyśpieszyć obliczenia należałoby zmniejszyć zakres szukanego promienia np. w zależności od rozmiarów obrazu. Małe różnice w rzeczywistych stosunkach monet są głównym powodem błędów szacowania. 6. Bibliografia. http://www.nbp.pl/home.aspx?f=/banknoty_i_monety/monety_obiegowe/opisy.html http://rsbweb.nih.gov/ij/docs/guide/146-10.html#sub:composite-selections https://pl.wikipedia.org/wiki/transformacja_hougha 5