Czy są jakieś techniki uczenia maszynowego do identyfikacji punktów na wykresach / obrazach?


8

Mam dane dotyczące pozycji bocznej każdego pojazdu w czasie i numer pasa, jak pokazano na tych 3 wykresach na zdjęciu i przykładowe dane poniżej.

wprowadź opis zdjęcia tutaj

> a
   Frame.ID   xcoord Lane
1       452 27.39400    3
2       453 27.38331    3
3       454 27.42999    3
4       455 27.46512    3
5       456 27.49066    3

Pozycja boczna zmienia się w czasie, ponieważ ludzki kierowca nie ma doskonałej kontroli nad pozycją pojazdu. Manewr zmiany pasa rozpoczyna się, gdy pozycja boczna zmienia się drastycznie, i kończy się, gdy zmiana znów staje się „normalna”. Nie można tego bezpośrednio zidentyfikować na podstawie danych. Muszę ręcznie spojrzeć na działkę każdego pojazdu, aby określić punkt początkowy i końcowy manewru zmiany pasa, aby oszacować czas trwania zmiany pasa. Ale mam w zestawie tysiące pojazdów. Czy możesz skierować mnie do dowolnego odpowiedniego algorytmu analizy obrazu / uczenia maszynowego, który można by przeszkolić w zakresie identyfikowania tych punktów? Pracuję w R. Z góry dziękuję.


Czy próbowałeś zidentyfikować matematycznie, co robisz, kiedy ręcznie klasyfikujesz manewry zmiany pasa? Czy zasadniczo szukasz zmiany od okresu stabilnego gradientu bliskiego zeru funkcji pozycji pasa, a następnie dużego wzrostu wielkości gradientu, prowadzącego do kolejnego okresu bliskiego zeru gradientu lub do końca danych?
image_doctor,

Czy masz wiele oryginalnych zdjęć, z którymi możemy eksperymentować?
image_doctor,

Oś i skale są legendami niezbyt spójnymi na przykładowych obrazach, czy istnieje sposób na standaryzację wykresów, czy też nie masz kontroli nad tworzeniem obrazów?
image_doctor,

1
Tak, rozumiem, że chcesz określić koniec manewru zmiany pasa, ale jeśli masz już pas pojazdu za każdym razem, nie jest trudno wykryć te zmiany. Zacznę od określenia, kiedy należy wziąć pod uwagę, że pojazd nie zmienia już pasów (np. Po określonej liczbie sekund jazdy na tym samym pasie). Możesz użyć okna do wykrycia segmentów, w których pojazd utrzymuje ten sam pas, a punkty na początku i na końcu takich segmentów opisują odpowiednio „początek zmiany pasa” i „koniec zmiany pasa”.
Robert Smith,

1
Świetny. Myślałem, że nie masz linii początkowej i docelowej, ale jeśli zawsze je masz, twoje rozwiązanie powinno działać i dodatkowo wykorzystuje dane, które już masz, aby stworzyć definicję zmiany linii.
Robert Smith,

Odpowiedzi:


2

Zrobiłaby to pierwsza pochodna na powierzchni. Jednak wyświetlane dane zawierają dużo szumu, dlatego potrzebujemy sposobu oceny pierwszej pochodnej w nieco bezszumowy sposób lub przynajmniej w dziedzinie częstotliwości, która eliminuje drgania i zachowuje główną zmianę pochodnej.

Analiza falkowa może to dla ciebie osiągnąć, szczególnie jeśli użyjesz pierwszej pochodnej Gaussa jako falki matki. R ma kilka porządnych pakietów falkowych (patrz r-project.org na początek). Jeśli wykonasz transformację falkową w krótkich skalach, zidentyfikuje ona lokalizacje bitów drgań w kierowaniu. Jeśli robisz to w większych skalach (tj. Na niższej częstotliwości), prawdopodobnie znajdziesz tylko przesunięcia linii, a nie małe drgania.

Jeśli trenujesz transformację przy użyciu rozsądnego zestawu danych, powinieneś być w stanie zidentyfikować skalę lub zakres skal odpowiadający zmianom linii. Ale zauważ, że jeśli tego nie rozgryziesz, jest to coś w rodzaju O (n ^ 2), więc spróbuj nieco zawęzić zakres skali, aby zaoszczędzić czas obliczeniowy.


1

Wygląda na to, że możesz po prostu poszukać kilku sekund wyższej niż pochodna szumu. Wystarczy obliczyć wartość bezwzględną różnicy skończonej z każdego kroku czasowego do ostatniego (lub jednego z poprzednich) i poczekać na serię wysokich wartości. To wtedy następuje zmiana linii.


Tak właśnie zrobiłem. Problem polega na tym, że próg różnicy i „wysokie” wartości są bardzo subiektywne, ponieważ podróż każdego pojazdu jest inna.
umair durrani,

1

Wypróbuj pakiet zmian . Użyłem go w podobnej sprawie.

Analiza Changepoint to nazwa statystyczna metod wykrywających zmiany między dwoma „reżimami”. Samochód pozostający na pasie to linia o nachyleniu 0 w środkowym punkcie pasa. Możesz łatwo dopasować model statystyczny do samochodów jadących po pasach ruchu. Samochód zmieniający pas jedzie wzdłuż linii o nachyleniu innym niż 0. Model się zmienił. Analiza Changepointa i jego pakiet są dokładnie tym, czego potrzebujesz, aby określić punkt, w którym model zmienia się z y=a' (straight and level) toy = a + bx` (w górę lub w dół).


Zasadniczo jest to odpowiedź tylko do linku i na ogół zniechęca się do SE. Może uda ci się wyjaśnić, co to jest i dlaczego jest to pomocne.
Sean Owen

@AlbertoD Archaiczny język winiety, którą udostępniasz, nie jest pomocny dla kogoś nowego w koncepcji analizy punktów zmiany.
umair durrani

@AlbertoD Czy mógłbyś podać przykład wykorzystania pakietu CP w twoim przypadku?
umair durrani
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.