2013-11-10 12 views
5

Jestem absolwentem EE, pracuję nad projektem, który wymaga ode mnie wykrycia dróg (przede wszystkim zakrętów). Warunkiem jest, aby, biorąc pod uwagę współrzędne GPS i kierunki zwojów, robot powinien móc poruszać się do danego punktu. Problem w tym, że współrzędne GPS są bardzo niedokładne, a drogi nie zawsze są proste. Więc będę musiał wykryć boki drogi i odpowiednio nawigować mojego robota.Komputerowa wizja, wykrywanie dróg, od czego zacząć?

Mam na myśli montowanie dwóch kamer po obu stronach robota. Zwykle byłby wykorzystywany do utrzymywania robota na środku drogi, a gdy robot znajduje się na 5 metrach skrętu, jedna z kamer prowadziłaby go przez zakręt.

Będę pracował nad Raspberry Pi, ale do celów testowych zainstalowałem simplecv i opencv na moim laptopie z systemem Ubuntu. Nie mam absolutnie żadnego doświadczenia z komputerową wizją. Nie mam pojęcia, od czego zacząć. Czy ktoś mógłby poprowadzić mnie przez algorytm do osiągnięcia wyżej wymienionego zadania? Czy powinienem pracować z simplecv lub opencv? Python lub C++? Osobiście lubię simplecv na python, ale nie mam pojęcia, czy jest w stanie osiągnąć zadanie.

Każda pomoc zostanie doceniona. Postaw mnie na właściwej drodze!

I will be demoing the project on campus, here the pictures of the campus's roads.

Edit: Idealne warunki, brak ruchu, brak przeszkód. Stała szerokość drogi.

+0

Spróbuj czytać od krawędzi do ostrych zakrętów lub transformacji HoughLine, rysując linie boków dróg. Tylko czubek głowy ... Ale nie chciałbym t zwykłe czujniki, takie jak IR, ultradźwiękowe, itp. są wystarczające zamiast wizji komputerowej? Nie jest to robotyczny ekspert, więc po prostu pytam – rockinfresh

+0

@rockinfresh IR czujniki mają ograniczony zasięg (zaledwie kilka cm) .Próbowałem ultradźwięków, ale nawierzchnia jest zbyt niska, ultradźwiękowy albo wykrywa drogę albo nic w ogóle –

Odpowiedz

3

Sugestia, że ​​myślę, że zadziała, więc daj mu szansę. Cztery obrazy, których będę używał, pochodzą z podręcznika "OpenCV 2 Computer Vision Application Programming Cookbook" Roberta Laganiere. Była to jedna z książek, których użyłem do badania przetwarzania obrazu, i był podobny przykład na drodze z wykorzystaniem HoughLine.

Użyłem HoughLine przed, ale nie na drogach. Tak aby dać u lepszy pomysł, to jest tutaj =>

Oryginalny obraz jest jak widać:

enter image description here

Teraz u mają zastosowanie Canny do obrazu, a to będzie wyglądać następująco:

enter image description here

lub u mogą korzystać Sobel zbyt ...

enter image description here

Po czym, u zastosować HoughLine:

enter image description here

Będziesz musiał dostosować parametry samodzielnie.

Więc tutaj jest moja propozycja =>

Włóż przednią kamerę, lekko wystarczająco niski, aby być w stanie wykryć pasy do kilku metrów, można użyć ROI zbyt (Region of Interest), aby skupić się na dolna połowa filmu, gdzie najprawdopodobniej znajdują się pasy. Ma to na celu wyeliminowanie hałasu, gdy wykrywane są również inne obiekty równoległe do drogi.

Umożliwiasz robotowi pozostawanie w środku obu wykrytych linii drogowych. Innym zastosowaniem zwrotu z inwestycji jest to, że jedna strona linii znika, oznacza to, że porusza się on celująco ukośnie.Możesz dostosować robota, aby wrócić na właściwe tory.

Gdy jest skręt, możesz określić, że jeśli linie (być może przez operatora) nie są już pionowe, wykonaj kolejną linię, aż linie znów będą pionowe.

Oczywiście trzeba będzie napisać dwie różne funkcje, aby sprawdzić, czy wykonać skręt w prawo, czy skręt w lewo w zależności od kąta linii.

W ten sposób rozwiązam ten problem. Moja metoda powinna przynieść całkiem przyzwoite rezultaty. Jedynym problemem, jaki możesz napotkać, jest dostosowanie parametrów Houghline i Canny.

(PS Podczas oglądania zdjęć zauważam, że krawędź drogi ma od czasu do czasu luki, dlatego polecam HoughLineP zamiast HoughLine, gdzie można określić maksymalną przerwę między liniami, aby uznać ją za linię, jeśli dobrze pamiętam. Jeśli to nadal nie działa, być może trzeba wykonać wstępne przetwarzanie na klatkach wideo.)

Mam nadzieję, że moja metoda okaże się przydatna. Powodzenia. Jeśli jest coś jeszcze, co może ci pomóc, skomentuj tę odpowiedź, staram się pomóc (:

+0

Przepraszam, mój nieformalny angielski w każdym razie Rodzaj w pośpiechu teraz Pokój – rockinfresh

+0

Czy ta metoda działała bez pasów? –

+0

Myślałem o wykonaniu HoughTransform na krawężniku. , ale da się to zrobić, możesz też użyć dwóch kamer po stronie, którą zaproponowałeś w pytaniu i Aby wykryć każdą stronę drogi (po jednej dla każdej strony) również przez transformację Hough. Następnie możesz ustawić kamerę w taki sposób, aby wyświetlała krawężniki w górnej połowie przechwyconych klatek i ustawić ROI w dolnej połowie. Jeśli się nad tym zastanowisz, na przykład na zakręcie w prawo na prawo, klatka po lewej stronie wyświetli HoughLine wchodzącej w ROI (dolna połowa), gdy krawężnik zbliży się do niej. – rockinfresh

3

Ponieważ pytasz "od czego zacząć", proponuję zacząć od przeczytania o problemie drogi ./wykrywanie pasa może można sprawdzić w bibliotece kampusu jakiegoś literaturze problemu

na przykład książka Davies E. Roy komputerowe i wizyjne... Teoria, Algorytmy, Praktyczne Elsevier/Akademickie 2012, ma "ROZDZIAŁ 23 Systemy wzroku w pojeździe", które opisuje podstawowe podejście do problemu "Lokalizowania jezdni" i "Lokalizacji oznakowań drogowych" Książka Daviesa zawiera także komentarz i aktualizację bibliograficzną Sekcja.

jakiegoś bardziej szczegółowe tła można sprawdzić „survey” artykuł jak poniżej, który porównuje różne podejścia do rozwiązania problemu:

MCCALL, Joel C.; TRIVEDI, Mohan M. Video-based lane estimation and tracking for driver assistance: survey, system, and evaluation. Intelligent Transportation Systems, IEEE Transactions on, 2006, 7.1: 20-37.

1

Zgodnie z obietnicą, tutaj jest inna metoda.

mieć jasny obraz tego, co ta metoda jest o, oglądać ten film: http://www.youtube.com/watch?v=TMKd9ov_rmE

Kolor metoda segmentacji jest rzeczywiście przy oczekiwania, maksymalizacji algorytm (EM). I filtry Gabora dla znikającego punktu. Coś bliskiego idei, którą mam na myśli, ale nieco innej.

Możesz wypróbować metodę pokazaną na wideo lub/i mojej.

To, co ja naprawdę zrobiłbym, to wciąż punkt zbiegu, a ROI zmienia się zgodnie z punktem osi Y punktu zbiegu. Podczas gdy strony ROI są ustalone tak, że droga (szary kolor jest zawsze w obszarze ROI).

Po tym czasie należy użyć obszaru, w którym raz, jeśli przestrzeń koloru w kolorze szarym w obszarze ROI jest mniejsza niż 90% (wyliczysz liczbę samodzielnie, to tylko przybliżony wskaźnik) zwrotu z inwestycji (co oznacza, że to kolej). Istnieje kilka metod, aby powiedzieć, która jest kolej, pozwolę ci odgadnąć tę część siebie: s. Na pewno możesz o tym pomyśleć, jeśli użyjesz tej metody.

Moim jedynym zmartwieniem jest przejście dla pieszych lub raczej pieszy w przykładowych zdjęciach w kolorze białym, które pokazałeś, ale można je łatwo usunąć. (wskazówka histogramu i jeśli kolor wartości to te w białym zakresie ....lub możesz użyć obszaru. jeśli blob jest mniejszy niż ta ilość pikseli ...)

Nie wiem, jak kosztowny obliczeniowo będzie ten program.

Ale jeśli zamierzasz wypróbować tę metodę, skup się na przestrzeni kolorów HSV lub LAB zamiast RGB. Teraz masz więcej metod do eksperymentowania. Możesz także spróbować wymyślić własne metody. Bawić. Przetwarzanie obrazu, komputerowa wizja jest naprawdę zabawna (:

Powiązane problemy