rozpoznawanie obrazu problem

Tematyka związana z tworzeniem aplikacji w LabVIEW do obsługi wizji oraz wszelkich operacji na obrazie.
hotdeejay
Posty: 8
Rejestracja: 22 sie 2012 10:25
Wersja środowiska: LabVIEW 2011

rozpoznawanie obrazu problem

Post autor: hotdeejay »

Witam wszystkich użytkowników - jako, że jest to mój pierwszy post.
Na wstępie chciałbym zaznaczyć, iż jest to moja pierwsza styczność z pakietem LabVIEW więc bardzo proszę o wyrozumiałość.
Zadaniem, jakie mam do wykonania, jest podzielone na kilka etapów. Pierwszym z nich jest rozpoznawanie obrazu - i na tym etapie zaczęły się już komplikacje...
Analizuję przykłady potrzebne do realizacji mojego tematu - wydaje mi się, że do rozpoznawania obrazu potrzebuję przykładu Geometric Matching Example. Przy użyciu przykładowych obrazków jest wszystko ok, jednak gdy wgrywam moje - wzór obrazk oraz zdjęcie, w którym kształt musi zostać wykryty, nie udaje się nic wykryć. Pomyślałem, że może jest jakiś problem z grafiką (bo obraz będzie pobierany z kamery umieszczonej na robocie) więc na szybko zrobiłem w paincie trojkąciki i... ich też nie może wykryć. Moje pytanie brzmi - dlaczego?
Zamieszczam również zdjęcie co i jak.
Jeśli użyłem błędnego przykładu - proszę zasugerować jaki inny powinienem przeanalizować, aby udało mi się osiągnąć zamierzony efekt.
Pozdrawiam
Załączniki
BLAD.jpg
Zyga
Posty: 86
Rejestracja: 26 sty 2012 23:36
Wersja środowiska: LabVIEW 2011

rozpoznawanie obrazu problem

Post autor: Zyga »

Hej. Jeśli możesz to załącz zdjęcia na których masz przeprowadzić identyfikację.
hotdeejay
Posty: 8
Rejestracja: 22 sie 2012 10:25
Wersja środowiska: LabVIEW 2011

rozpoznawanie obrazu problem

Post autor: hotdeejay »

Witam,
identyfikacje mam przeprowadzić na załączonych zdjęciach
http://hostuje.net/file.php?id=edd98cac ... e2dbaf693a
jest tutaj wzór elementu do identyfikacji oraz elemet, w któwym powinny te "rowki: zostać wykryte.
Pozdrawiam!
bogdani
Administrator
Posty: 1315
Rejestracja: 30 lip 2003 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Ruda Śląska
Kontakt:

rozpoznawanie obrazu problem

Post autor: bogdani »

To można rozwiązać poprzez wykrywanie krawędzi i dopasowanie jak coś potrzebujesz wyznaczyć.
Weź sobie Vision Buildera jeśli go masz i pobaw się funkcjami do wykrywania krawędzi.

Możesz wtedy dokonać pomiarów i wykryć elementy które potrzebujesz.

Szukanie tego elementu jako wzorca nie jest dobrym rozwiązaniem, bo niech ci się coś zmienić (oświetlenie, powierzchnia) i prawdopodobieństwo dopasowania będziesz miał zupełnie inne.

Inne sprawa co dokładnie chcesz zrobić. Chcesz sprawdzić czy jest rowek? czy jest w danym miejscu? Czy ma konkretne wymiary?
To są różne zadania.

Bogdani
Ktoś ci pomógł na forum? Podziękuj dając pochwałę.

Obrazek Obrazek Obrazek
hotdeejay
Posty: 8
Rejestracja: 22 sie 2012 10:25
Wersja środowiska: LabVIEW 2011

rozpoznawanie obrazu problem

Post autor: hotdeejay »

Witam,
muszę sprawdzić czy jest to rowek, później określić jego współrzędne.
Vision Builder - czy jest to jakiś dodatek do LabVIEW czy...?
Jak najlepiej będzie wykonać to zadanie? Od czego najlepiej zacząć, aby udało mi się zrealizować moje założenie?

Pozdrawiam
bogdani
Administrator
Posty: 1315
Rejestracja: 30 lip 2003 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Ruda Śląska
Kontakt:

Re: rozpoznawanie obrazu problem

Post autor: bogdani »

Witaj


Na początku to musisz odpowiedzieć na pytanie po co to robisz - co chcesz osiągnąć - kontrola wad w kształcie rowka, brak rowka itd.
Potem najlepiej jak możesz trzeba zdefiniować:
- warunki pomiaru: co jest powtarzalne, co może przeszkadzać, jakie masz oświetlenie, a jakie byłoby najlepsze.
- rowek - czy taka odległość między dwoma punktami wystarczy, czy musisz sprawdzić jego kształt? Co innego możesz znaleźć zamiast rowka.

Teraz dopiero możne stwierdzić jaka metoda będzie najlepsza do realizacji twojego zadania.
Z uwagi na fakt, iż nie mam odpowiedzi na powyższe zagadnienia i można tylko strzelać czy to o to chodzi.
W załączniku masz zrzut z Vision Assistanta, w którym zbudowałem proty skrypt do inspekcji - wczytanie obrazka, poprawa jego jasności i kontrastu, wykrycie krawędzi.
Po wykryciu krawędzi, otrzymuję współrzędne 6 punktów. Teraz tylko co ja mam z nimi zrobić, sprawdzić odległości między nimi, zmierzyć, itd. wariantów jest wiele.
VA.png
Ktoś ci pomógł na forum? Podziękuj dając pochwałę.

Obrazek Obrazek Obrazek
hotdeejay
Posty: 8
Rejestracja: 22 sie 2012 10:25
Wersja środowiska: LabVIEW 2011

rozpoznawanie obrazu problem

Post autor: hotdeejay »

WItam!;)
Chodzi o detekcję rowka - jego prawidłowe wykrycie. W przypadku prawidłowego wykrycia, manipulator robota wykona zdefiniowaną akcję. W przypadku wadliwego wykrycia musi zostać zgłoszony błąd i przerwana praca robota. W taki sposób to ma działać - ta część. Czyli jeśli chodzi o udział LabVIEW, to w nim (tak mi się wydaje - mogę się mylić) musi być zrobiona odpowiednia detekcja i w zależności od niej - adekwatna reakcja zwrotna.
Co do oświetlenia, to będzie zastosowany dodatkowy doświetlacz, także myślę, że można przyjąć jednolite warunki oświetleniowe dla całego cyklu procesu. Powtarzać się będą tylko te rowki.
Jako, że rowek jest półwyspem ciemnej powłoki, najlepszym rozwiązaniem chyba byłoby szukanie w poziomie - na kilku wysokościach - krawędzi. Następnie (po wykryciu krawędzi - znając ją już) należałoby w jej pobliżu szukać krawędzi poziomych rowka. Kolejno - przecięcie linii poziomej i pionowej powinno określić krawędź rowka. W taki sam sposób myślę, że trzeba wyznaczyć dolną krawędź i później na tej podstawie wyliczyć środek - z jednej krawędzi nie będzie dokłądności jeśli weźmiemy pod uwagę chropowatość powierzchni.
zy możesz udostępnić mi ten skrypt, który zrobiłeś?

Bardzo dziękuję za pomoc.
Awatar użytkownika
smiga
Administrator
Posty: 823
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2019
Lokalizacja: Słupsk

Re: rozpoznawanie obrazu problem

Post autor: smiga »

Myślę że najbardziej nam pomożesz pomóc sobie, jeżeli wrzucisz tu 2,3 zdjęcia opisywanego problemu (elementu z rowkiem).
Czy rowek pojawia się w różnych miejscach ekranu ( przesunięcie, rotacja)? Jak wygląda tło (rozumiem, że troszkę zmienią się warunki oświetlenia)? Czy elementy wyglądają identycznie, czy mogą to być różne elementy (kształt, wielkość, charakterystyczny wzór)?
Mając te informację, a być może jeszcze parę dodatkowych (okaże się jak wrzucisz jakieś zdjęcia), można będzie sugerować optymalne algorytmy.

Tak się składa, że praktycznie każdego dnia zajmuję się wizją w Labview ( nie tylko ) i jedno mogę powiedzieć, jeżeli narysujesz sobie obiekt przypominający rzeczywisty i zadziałają na nim pewne algorytmy, to dalej nie będziesz miał pewności, że na rzeczywistym wszystko będzie OK. Szeroko pojęta "wizja" to kombinacja oświetlenia, szkła, przetworników (kamer) i algorytmów, a każdy z tych elementów to rozległa dziedzina nauki. Czasami koncentrujemy się na algorytmie, a wystarczy zmiana oświetlenia, obiektywów lub kamery (rozdzielczości, szybkości, dynamiki itd.), a czasami odwrotnie. W Vision Assistant'cie możesz szybko i łatwo przetestować praktycznie każdy z popularnych algorytmów wizyjnych, ale niestety rzadko jest tak, że jeden, dwa, trzy wystarczą. Jak poskładać te pojedyncze klocki żeby uzyskać oczekiwany efekt?... to często największe wyzwanie ... ale jest wyzwanie, jest przyjemność :-)
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek
Pomogłem ... postaw kawę: https://buycoffee.to/smiga
Zyga
Posty: 86
Rejestracja: 26 sty 2012 23:36
Wersja środowiska: LabVIEW 2011

rozpoznawanie obrazu problem

Post autor: Zyga »

Swoją drogą ciekawe zagadnienie, sprzężenie pracy manipulatora z wizją. Ciekawe jakie zadanie ma wykonywać manipulator. Warto by tutaj rozpatrzeć jeszcze jedno zagadnienie - perspektywa. Gdzieś mi ostatnio kilka ciekawych słów na ten temat wpadło do ucha ; p
Awatar użytkownika
smiga
Administrator
Posty: 823
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2019
Lokalizacja: Słupsk

Re: rozpoznawanie obrazu problem

Post autor: smiga »

Zyga pisze:... Gdzieś mi ostatnio kilka ciekawych słów na ten temat wpadło do ucha ; p
Wszystko przez te druty ... w końcu są od słuchawek więc normalne, że wpada do ucha :-)
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek
Pomogłem ... postaw kawę: https://buycoffee.to/smiga
bogdani
Administrator
Posty: 1315
Rejestracja: 30 lip 2003 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Ruda Śląska
Kontakt:

rozpoznawanie obrazu problem

Post autor: bogdani »

smiga, masz w trzecim poście tego wątku linka do pliku ze zdjęciami które użyłem.
Dla mnie wygląda to tak, że dla tego zdjęcia będzie to działało, ale znając życie, w praktyce od razu algorytm padnie, bo będzie inaczej zdjęcie zrobione, pozycja będzie nie ta, itd, itp.
Ktoś ci pomógł na forum? Podziękuj dając pochwałę.

Obrazek Obrazek Obrazek
hotdeejay
Posty: 8
Rejestracja: 22 sie 2012 10:25
Wersja środowiska: LabVIEW 2011

rozpoznawanie obrazu problem

Post autor: hotdeejay »

bogdani - mogę prosić o plik, który zrobiłeś i którego efekt wrzuciłeś na forum?
Zdjęcia zamieściłem - oświetlenie będzie stałe - będzie dołączony do zestawu doświetlacz.
Elementy będą identyczne, chyba, że będą uzkodzone, ale wtedy algorytm ma dać stosowny błąd.
Pozdrawiam i dziękuję za pomoc
bogdani
Administrator
Posty: 1315
Rejestracja: 30 lip 2003 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Ruda Śląska
Kontakt:

Re: rozpoznawanie obrazu problem

Post autor: bogdani »

W załączniku skrypt do Vision Assistanta. Jego zrobienie to jest minuta roboty, więc traktuj to jako ewentualny punkt wyjściowy a nie podstawę do działania.
Załączniki
VA_script.zip
(1.21 KiB) Pobrany 576 razy
Ktoś ci pomógł na forum? Podziękuj dając pochwałę.

Obrazek Obrazek Obrazek
hotdeejay
Posty: 8
Rejestracja: 22 sie 2012 10:25
Wersja środowiska: LabVIEW 2011

rozpoznawanie obrazu problem

Post autor: hotdeejay »

ok, dziękuję bardzo.
Czy możesz mi jeszcze polecić, zasugerować itd jakąś lekturę potrzebną do wykonania mojego zadania? Tutorial, instrukcję, cokolwiek.. Najlepiej po Polsku, od biedy z angielskim też dam sobie radę.
Jak w ogóle konstruować programy do analizy obrazu w LabVIEW gdyż na chwilę obecną jest to dla mnie troszkę "czarna magia"?
bogdani
Administrator
Posty: 1315
Rejestracja: 30 lip 2003 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Ruda Śląska
Kontakt:

rozpoznawanie obrazu problem

Post autor: bogdani »

Cóż z książek możesz dużo przeczytać, można znaleźć sporo wiedzy w Internecie, ale to co najważniejsze to wiedza praktyczna, a tego możesz nauczyć się od kogoś.
Nie wiem jak ważny jest to projekt, ale jak będziesz to robić sam, bo możesz się podknąć się w kilku miejscach i stracić czas i pieniądze.
Czasem warto skorzystać z kogoś mądrzejszego i zrobić to szybko, profesjonalnie i przy okazji uczyć się od niego jak najwięcej.

Jest taka firma w twojej okolicy :-) smiga wie o niej trochę więcej :D (co ja najlepszego robię :-) )
Ktoś ci pomógł na forum? Podziękuj dając pochwałę.

Obrazek Obrazek Obrazek
ODPOWIEDZ