Rozpoznawanie monet

Tematyka związana z tworzeniem aplikacji w LabVIEW do obsługi wizji oraz wszelkich operacji na obrazie.
Paja
Posty: 2
Rejestracja: 06 wrz 2013 09:18
Wersja środowiska: LabVIEW 2010

Rozpoznawanie monet

Post autor: Paja » 06 wrz 2013 09:52

Witam
Jestem początkującym użytkownikiem LabVIEW. Chciała bym wykonać projekt rozpoznawania moment oraz ich sumowania. Dysponuję NI Vision Assistant oraz NI Vision Builder. Aby ułatwić sobie zadanie, monety do tego projektu skanowała aby wyeliminować między innymi problem skalowania, lub dodatkowego wzorca który miał by pomagać identyfikować monety. Pierwszym pomysłem było wczytanie szablonów monet 5zł, 2zł, 1zł w Vision Assistant. Tutaj pojawiają się pierwsze problemy identyfikacji tych monet. Mianowicie o ile obrócenie monety względem środka nie stanowi problemu o tyle już sam odcień monety ma znaczenie. Czyli jeżeli ja mam dość czystą monetę w szablonie a zaskakuję ten sam nominał natomiast już bardziej zużytą, aplikacja już mi tej monety nie wykryje.
Więc pozostaje wykonanie aplikacja która by znajdowała okrąg, szukała promienia następnie przypisała do tego promienia wartość danej monety. Ale tutaj mam mnóstwo problemów:
1. Nie wiem za bardzo jak przypisać, że dana średnica w pikselach to jest dana moneta
2. Pojawia się problem gdyż jak na zdjęciu jest kilka monet to i tak szuka mi tylko i wyłącznie jednego okręgu co uniemożliw mi identyfikacje pozostałych.
I wiele innych.
Jeżeli któryś z użytkowników robił podobną aplikacje prosiła bym o jakieś wskazówki, coś co pomogło by mi w wykonaniu tego zadania. Z góry dziękują za jakąkolwiek wskazówkę i odpowiedź :)
Pozdrawiam Paulina

Zyga
Posty: 74
Rejestracja: 26 sty 2012 23:36
Wersja środowiska: LabVIEW 2011

Rozpoznawanie monet

Post autor: Zyga » 06 wrz 2013 18:50

Cześć.
Wrzuć swój kod i zdjęcia. Na pewno ktoś pomoże ; )

Awatar użytkownika
Góras
Posty: 88
Rejestracja: 13 sie 2012 10:15
Wersja środowiska: LabVIEW 2012

Rozpoznawanie monet

Post autor: Góras » 06 wrz 2013 20:55

O, ja robiłam wieki temu taką aplikację, tylko że w MatLabie :)

Co do rozmiaru monet to dobrze użyć czegoś do kalibracji. Mi wystarczyło czarne kółeczko, które skanowałam razem z monetami, dzięki czemu rozmiary monet w pixelach wyliczałam z proporcji.

Przydatne przy określaniu rodzaju monet jest też sprawdzenie koloru środka - z tego co pamiętam to któraś ze składowych RGB (chyba niebieska) różniła się mocno dla miedzianych i srebrnych monet - przydatne szczególnie przy odróżnieniu 5 groszy od 20 groszy.

Co do problemu ze znajdowaniem tylko jednego okręgu, rzeczywiście przydałby się kod lub chociaż wskazówka, w jaki sposób je znajdujesz.

Paja
Posty: 2
Rejestracja: 06 wrz 2013 09:18
Wersja środowiska: LabVIEW 2010

Re: Rozpoznawanie monet

Post autor: Paja » 06 wrz 2013 21:47

Witam :) 
Za namową, wrzucam to, co udało mi się osiągnąć. Skrypt identyfikuje na razie 5 zł, 2zł, 1zł oraz 50gr. Pliki: aa, bbb, mmm, ppp, hhh są to wzorce, pozostałe zdjęcia służą do sprawdzania, jak aplikacja działa. Aplikacja ta w ogóle nie bierze pod uwagę okręgów, czy promieni. Ponieważ nie dałam sobie rady w ten sposób poszukałam innego. Co do kalibrowania, miałam za zadanie robić zdjęcia z jednej wysokości, a że tutaj pojawiały się cienie itp. postanowiłam przejść na skaner, który ułatwił bardzo sprawę. 

Co do wyszukiwania okręgów, jest to pomysł, który chciałabym wcielić w życie natomiast jedyne, co teraz potrafię, to znaleźć jeden okrąg i nic więcej konstruktywnego z tego nie wychodzi niestety.  

Link do aplikacji oraz wzorców:
http://www.sendspace.com/file/ltqf9h
Pozdrawiam :)

Zyga
Posty: 74
Rejestracja: 26 sty 2012 23:36
Wersja środowiska: LabVIEW 2011

Re: Rozpoznawanie monet

Post autor: Zyga » 12 wrz 2013 01:00

Skoro rozpoznajesz zdjęcia które wrzuciłaś na sendspacea, to w czym jest problem?
Dla skanów możesz w bardzo prosty sposób rozpoznać obiekty za pomocą liczenia pola..

KASZTAN
Posty: 1
Rejestracja: 16 cze 2017 22:21
Wersja środowiska: LabVIEW 2017

Re: Rozpoznawanie monet

Post autor: KASZTAN » 16 cze 2017 22:26

Cześć,
Udało się może napisać kod rozpoznający monety?
U mnie wszystko gra jeżeli chodzi o monety miedziane, problem występuje z monetami srebrnymi gdyż kolor tła jest bardzo podobny do koloru monety.
Jakieś pomysły jak poradzić sobie z takimi zdjęciami?
Załączniki
monety0004.jpg
monety0002.jpg

MK_Zuk
Posty: 80
Rejestracja: 01 gru 2009 11:53
Wersja środowiska: LabVIEW 2014
Has thanked: 1 time
Been thanked: 1 time

Rozpoznawanie monet

Post autor: MK_Zuk » 21 cze 2017 16:22

A czy da się zmienić tło? czy jest narzucone z góry?

Awatar użytkownika
micard
Posty: 133
Rejestracja: 30 wrz 2011 11:28
Wersja środowiska: LabVIEW 2016
Has thanked: 4 times
Been thanked: 2 times
Kontakt:

Rozpoznawanie monet

Post autor: micard » 22 cze 2017 08:28

problemem jest nie tylko kolor ale też i ostrość obrazu - bez wyraźnych krawędzi ciężko cokolwiek zrobić.
Oczywiście czarne tło byłoby miłe - ale można też pobawić się światłem: kolorami i kierunkiem. Do wykrywania monet szczególnie ciekawy jest układ "dark field":
http://www.microscan.com/en-us/resource ... d-lighting

ODPOWIEDZ