Przetwarzanie obrazu video - pomoc

Jeśli masz coś do powiedzenia w sprawie LabVIEW napisz. Tutaj są tematy, których nie można uściślić do innych działów.
Student23
Posty: 6
Rejestracja: 27 lis 2012 12:02
Wersja środowiska: LabVIEW 2011

Przetwarzanie obrazu video - pomoc

Post autor: Student23 » 19 mar 2013 19:40

Witam. Pierwsze pytanie od którego chciałbym wyjść w tym temacie to pomoc odnośnie tego tematu. Mam taki projekt, który należy wykonać w LabVIEW. Wgrać filmik ukazujący ruch uliczny oraz przemieszczanie się samochodów i na tej podstawie program ma rozróżniać postacie od samochodów, może np jakieś inne kształty. W dodatku jakieś zliczanie osob oraz samochodów. Projekt nie ma być robiony w żadnym vision builderze. Tylko w " klasycznym LabVIew" moje pytanie, od czego zacząć? w sensie z jakimi funkcjami powinienem się zapoznać aby móc takie coś zrealizować. Nie mam właśnie pojęcia zbytnio jakie funkcje są potrzebne do przetwarzania obrazu, wgrania pliku video, a z chęcią się z nimi zapoznam. Prosiłbym o podanie parę kroków od których należało by wyjść. Z góry dziękuje i pozdrawiam

Awatar użytkownika
Koss
Posty: 23
Rejestracja: 19 paź 2012 20:40
Wersja środowiska: LabVIEW 2012

Re: Przetwarzanie obrazu video - pomoc

Post autor: Koss » 20 mar 2013 12:05

Vision Development Module jest do tego potrzebny - tam znajdziesz wszystkie potrzebne funkcje.

Przeglądaj paletę funkcji z włączonym oknem Context Help, a znajdziesz odpowiednie bloczki.

Zacznij od wczytywania pliku, potem zacznij np.: od obrazów różnicowych pomiędzy kolejnymi klatkami.

Więcej informacji znajdziesz w linku:
http://digital.ni.com/manuals.nsf/webse ... 1F00598BB6.

W razie problemów pisz na forum, pomożemy.

Powodzenia!
Obrazek
Extensa - certyfikowani programiści NI LabVIEW

Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2014
Lokalizacja: United Kingdom

Przetwarzanie obrazu video - pomoc

Post autor: Mikrobi » 24 mar 2013 19:34

Jeśli obraz jest w skalach szarości, to pobrany obraz możesz zamienić na tablicę lub macierz przykładowo o reprezentacji U8 lub poddać binaryzacji.
Potem już wchodzą w grę operację z "klasycznego" przetwarzania obrazu: erozje, dylatacje itd.
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI

Awatar użytkownika
wino
Posty: 548
Rejestracja: 23 gru 2005 00:00
Wersja środowiska: Nie mam LabVIEW
Lokalizacja: Kraków

Re: Przetwarzanie obrazu video - pomoc

Post autor: wino » 29 mar 2013 20:49

Cześć,
Projekt nie ma być robiony w żadnym vision builderze. Tylko w " klasycznym LabVIew" moje pytanie, od czego zacząć? w sensie z jakimi funkcjami powinienem się zapoznać aby móc takie coś zrealizować.
Z tego co kminie to Vision Assistant (nie vision builder ...) to jest program, który został stworzony w "klasycznym LabVIEW". Jak ktoś nie ma zielonego pojęcia o przetwarzaniu obrazów, to powinien właśnie z tego programu skorzystać. Co ciekawe, ten program ma taką zdolność, że generuje kod w "klasycznym LabVIEW". Jakbym był na Twoim miejscu, to załadowałbym do tego programu jakiś obrazek i sprawdził jakie mam możliwości. Zwróciłbym szczególną uwagę na to, czy zdjęcie, które posiadam jest na tyle dokładne, że jestem w stanie za pomocą algorytmów, które są dostępne w Vision Assistant, ocenić zdjęcie na podstawie kryteriów, które posiadasz. W sumie NI stworzyło ten program dla takich ludzi jak Ty! Dopiero potem zająłbym się filmem.

Student23
Posty: 6
Rejestracja: 27 lis 2012 12:02
Wersja środowiska: LabVIEW 2011

Re: Przetwarzanie obrazu video - pomoc

Post autor: Student23 » 04 paź 2013 10:47

przejscie_jana0040.jpg
przejscie_jana0040.jpg (53.56 KiB) Przejrzano 8985 razy
Witam!
Chciałbym powrócić do tego tematu. Generalnie mam ogromny problem i nie wiem jak sobie poradzić. Zamieszczam zdjęcie na którym próbuje zrobić zalecane przekształcenia, czyli m.in śledzenie ruchu pieszych, jakiś rozróżnianiu kształtów i zliczanie obiektów. Zdjęcia są wygenerowane z filmiku około 5 minutowego.
Cały czas próbuje to zrobić w vision builderze, gdzie juz na samym początku dane zdjęcie poddaje analizie w vision assistant, ale nie bardzo wiem czego użyć by otrzymać rezultat. Próbowałem zabawy z przekształceniami morfologicznymi, maskami itp, a po tych zapisach używam funkcji detect w vision builderze, lecz nigdy nie wykrywa mi np obiektów tych istotnych ( ludzi ), bierze pod uwagę tez drzewa, pasy itp. Jak np zrobić by czerwony kwadracik oznaczający wykryty obiekt był tylko dla ludzi i tam gdzie oni sie przemieszcza tam i z nimi ten kwadrat.. Próbowałem to robić i bawić się rozmiarami pikseli ale wydaje mi się że w ogóle nie wiem co i jak;/ Czy to naprawdę trudne i ciężkie do realizacji? Z góry dziękuje za pomoc

may
Posty: 96
Rejestracja: 20 lut 2012 12:30
Wersja środowiska: LabVIEW 2014
Lokalizacja: Katowice / Ruda Śląska

Re: Przetwarzanie obrazu video - pomoc

Post autor: may » 04 paź 2013 11:52

To z pewnością nie będzie całkowicie wyczerpująca odpowiedź, ale może jakoś cię naprowadzi:

Po pierwsze: W dużym skrócie, tak, to jest trudne. Wizja jest dość trudna nawet jeżeli dzieje się to na linii produkcyjnej, gdzie ściśle wiadomo jakich obiektów się spodziewać, jest dobrane oświetlenie i takie tam. Wrzuciłeś tylko jedną klatkę, ale jeżeli to jest film w stylu "A strzelę sobie z ręki filmik o przejściu dla pieszych", to może być dość ciężko.

Po drugie: "jakieś rozróżnianiu kształtów i zliczanie obiektów". Musisz to trochę doprecyzować co naprawdę chcesz zrobić. Pamiętaj, że przy analizie informacji wizyjnej musisz trochę przestać myśleć jak człowiek a zacząć myśleć jak maszyna (ale poetycko mi to wyszło). Trzeba rozpatrywać problem w postaci podstawowych kształtów, kolorów, kontrastu, ruchu i takich tam. Jeżeli sprecyzujesz sobie zadanie: Chcę znaleźć wszystkie wyróżniające się od tła / jasne prostokąty, (zliczam ile jest pasów na jezdni) albo chcę znaleźć niewielki intensywnie czerwony/zielony kształt (sprawdzam jakie światło się pali) to będzie prościej ustalić jakie operacje potrzebujesz wykorzystać.

Po trzecie: zasadniczo rozpoznawanie ruchu można uzyskać poprzez porównanie ze sobą (odjęcie dokładniej) dwóch kolejnych klatek filmu. To co jest takie same jest stacjonarne, to co nie jest rusza się. Potem te powstałe obszary prawdopodobnie trzeba będzie sprogować jakieś operacje morfologiczne (jakaś erozja, zamknięcie czy coś w ten deseń) oznaczenie jako obiekty nałożenie na nie kwadratów czy jakichś innych oznaczników. W ten sposób powinno dać się w miarę śledzić ruch ludzi. Chyba, że kamera nie jest na statywie, filmowane jest z ręki i zasadniczo wszystko się rusza. Wtedy będzie zdecydowanie trudniej.

Wiem, że rzucam jedynie ideami a nie gotowymi rozwiązaniami, ale z wizją tak już jest, że trzeba trochę poeksperymentować i potweakować sporo rzeczy żeby efekty były dobre, ale mam nadzieję że choć trochę naprowadziłem na słuszny kierunek.
Ostatnio zmieniony 04 paź 2013 11:54 przez may, łącznie zmieniany 1 raz.
Obrazek

Student23
Posty: 6
Rejestracja: 27 lis 2012 12:02
Wersja środowiska: LabVIEW 2011

Przetwarzanie obrazu video - pomoc

Post autor: Student23 » 04 paź 2013 12:30

Dziękuje za wyczerpującą wypowiedź. Faktycznie ten trzeci wariant brałem pod uwagę, lecz nie bardzo wiem jak do tego się zabrać. Generalnie drugiego zdjęcia nie wrzucałem z racji, ze po jakiś 10 kolejnych zdjęciach jak łatwo się domyśleć panowie na zdjęciu bedą znajdować się gdzieś na środku pasów i właśnie tutaj mi chodziło by nad każdym znajdującym się człowiekiem, czy przejeżdżającym pojeździe była ramka, która cały czas będzie się przemieszczała wraz z dana osobą. Myślałem że to trochę łatwiejsze będzie. Eh..

may
Posty: 96
Rejestracja: 20 lut 2012 12:30
Wersja środowiska: LabVIEW 2014
Lokalizacja: Katowice / Ruda Śląska

Przetwarzanie obrazu video - pomoc

Post autor: may » 04 paź 2013 12:57

Obrazek

Student23
Posty: 6
Rejestracja: 27 lis 2012 12:02
Wersja środowiska: LabVIEW 2011

Re: Przetwarzanie obrazu video - pomoc

Post autor: Student23 » 04 paź 2013 20:03

A czy w ogóle do zabawy właśnie z gotowymi zdjęciami czy jakimś filmikiem jest potrzebny moduł IMAQ, czy on własnie sluzy bezposrednio do pozyskiwania danych w trybie rzeczywistym gdy uzywamy kamery?? Generalnie posiadam kamerę WEB wbudowaną w laptopie, chociaż z tego co mi wiadomo ustawia się ja w produkcie Measurement Automation, a tam niestety mi jej w ogole nie widzi. No chyba, że się myle

Awatar użytkownika
Koss
Posty: 23
Rejestracja: 19 paź 2012 20:40
Wersja środowiska: LabVIEW 2012

Re: Przetwarzanie obrazu video - pomoc

Post autor: Koss » 07 paź 2013 23:54

Do kamery w laptopie(USB) potrzebne są sterowniki IMAQdx.
Do bardziej zaawansowanych funkcji z przetwarzania obrazów potrzebny jest Vision Development Module.

Do operowania na danych obrazowych potrzebujesz odpowiedniego typu danych - Image,to ten fioletowy kabel. Jak masz któryś z powyższych modułów to powinien być dostępny.

http://sine.ni.com/np/app/main/p/bot/no ... on/sw/flp/

Do detekcji ruchu, jeśli inne pomysły nie zadziałają, spróbowałbym OpticalFlow.
Obrazek
Extensa - certyfikowani programiści NI LabVIEW

Student23
Posty: 6
Rejestracja: 27 lis 2012 12:02
Wersja środowiska: LabVIEW 2011

Przetwarzanie obrazu video - pomoc

Post autor: Student23 » 08 paź 2013 14:44

Tak Tak dzięki wszystkie odpowiednie moduły mam. Kwestia teraz jakie zastosować potrzebne bloczki by to miało sens. To zdjęcie u góry próbuje przerobić by po prostu wykrywał ruch, i zaznaczał obiekty poruszające się. Aby zastanawia mnie czy w przypadku tego zdjęcia to jestem wstanie zrobić, ponieważ jakość jest marna.

Awatar użytkownika
Koss
Posty: 23
Rejestracja: 19 paź 2012 20:40
Wersja środowiska: LabVIEW 2012

Re: Przetwarzanie obrazu video - pomoc

Post autor: Koss » 09 paź 2013 00:34

Powodzenia - napisz jak poszło, jak coś to pomożemy.
Obrazek
Extensa - certyfikowani programiści NI LabVIEW

ODPOWIEDZ