Trenowanie siatki AI - szybkość ruchu na podstawie obrazu kamery

0

Czy Waszym zdaniem, a może przypadkiem jest tu ktoś, kto się tym bawi(ł), da się wytrenować siatkę sztucznej inteligencji aby na podstawie obrazu z kamery umieszczonej nad gruntem (nie zawierającym żadnych wystandaryzowanych znaczników czy miar odległości) potrafiła określać szybkość poruszania się pojazdu (w przedziale 0-30 km/h)?

A może nie potrzeba do tego AI, może gdzieś, ktoś już coś takiego zrobił? Niestety nie udało mi się znaleźć.

Będę wdzięczny.

1

Da się

0

Byłbym się w stanie się założyć, że się nie da. Powodem jest to, że km jest wartością umowną, nie można się go nauczyć.

0
ralf napisał(a):

Byłbym się w stanie się założyć, że się nie da. Powodem jest to, że km jest wartością umowną, nie można się go nauczyć.

A gdyby kamera cały czas widziała przymocowaną do pojazdu miarę np 0,5 lub 0,25 m i system mierzył czas w jakim obiekt (punkt) znajdujący się na ziemi w punkcie start (zero metrów) miary znajdzie się w punkcie stop miary (0,5 metra)?
Czyli gdyby pobawić się w pewien rodzaj adresowania względnego? ;)

Oczywiście zamiast wybranego punktu może być chmura punktów i zestaw relacji między nimi.

0

Każdemu kierowcy będziesz rozdawał wzorzec miary przed przejazdem danym odcinkiem? :) Dużo prościej wyznaczyć punkty orientacyjne w polu widzenia kamery.

0
ralf napisał(a):

Każdemu kierowcy będziesz rozdawał wzorzec miary przed przejazdem danym odcinkiem? :) Dużo prościej wyznaczyć punkty orientacyjne w polu widzenia kamery.

W tym przypadku nie ma ani kierowcy ani wyznaczonej trasy.
Ale za to jest bezdroże. Załóżmy nawet, że nie ma chętnych aby wcześniej po nim chodzić i stawiać punkty informacyjne.

Wzorzec miary jest przykręcany razem z kamerą. w tej samej "chwili" i zostaje tam na stałe jako część pojazdu.

0

Byłoby to możliwe i bez tej miary ale musiałbyś mieć wytrenowaną AI wcześniej (nauczoną w km/h) i przy założeniu, że w twoim polu widzenia będą poruszać się te same obiekty, a nie przeskalowane (np. samochody zabawki).

1
ralf napisał(a):

Byłbym się w stanie się założyć, że się nie da. Powodem jest to, że km jest wartością umowną, nie można się go nauczyć.

Da sie i jest to dośc popularne w AI'u -> https://github.com/keon/speed

0

Czyli miałem rację:

scale_real_length = pixel_length * 44  # multiplied by 44 to convert pixel length to real length in meters (chenge 44 to get length in meters for your case)
speed = speed / 6 * 40  # use reference constant to get vehicle speed prediction in kilometer unit
0
ralf napisał(a):

Byłoby to możliwe i bez tej miary ale musiałbyś mieć wytrenowaną AI wcześniej (nauczoną w km/h) i przy założeniu, że w twoim polu widzenia będą poruszać się te same obiekty, a nie przeskalowane (np. samochody zabawki).

Wolałbym nie mieć założenie, że jeśli zmieni się charakter gruntu to będę musiał trenować siatkę od początku. A jak rozumiem takie jest założenie w powyższym podejściu.
Umieszczenie stałego widoku wzorca odległości, czyli wspomnianej przeze mnie miary 0,25 m nie jest dla mnie ani utrutdnieniem ani kłopotem.
Czy Twoim zdaniem to rozwiązuje problem?
Oczywiście przy założeniu, że teren jest płaski i nie ma "wąwozów" w stylu Smoleńska. Choć z drugiej strony skoro mierzymy odległość za pomocą obrazu a nie wiązki lasera czy radaru, to przy założeniu, że kamera przemieszcza się po linii prostej i stale na tej samej wysokości, to przy tych szybkościach różnice terenu nie powinny być chyba aż tak bardzo istotne. No chyba, że jestem w błędzie ;)

1
ralf napisał(a):

@komuher nie zrozumiałeś o czym pisałem, pokaż mi w tym projekcie wyliczone prędkości w km albo milach na godzinę
Czyli miałem rację:

scale_real_length = pixel_length * 44  # multiplied by 44 to convert pixel length to real length in meters (chenge 44 to get length in meters for your case)
speed = speed / 6 * 40  # use reference constant to get vehicle speed prediction in kilometer unit

Oczywiscie ze nie miałeś racji.

Pierwszy link na gicie to jest rozwiazanie wlasnie problemu predykcji szybkosci odnoszac sie do Challeng'u comm.ai (teraz to jest ich zadanie rekrutacyjne wiec mozliwe ze to po prostu repo ktore prezentuje umietnosci kandydata) -> I tam wlasnie jest uzyty czysty deep learning bez zadnych asumpcji co do rozmiaru pixeli etc.

Sa setki potencjalnych algorytmów do uczenia wrzuciłem tylko coś co ma jakis w miare sensowny tutorial.

Tutaj nvidia_papers czesc challengu nvidi z predykcja predkosci i wyniki -> https://github.com/NVIDIAAICITYCHALLENGE tu repo z rozwiazaniami etc.

https://github.com/zhengthomastang/2018AICity_TeamUW/tree/master/Track1/6_SPD_EST

1

Nie wiem po co wklejasz kolejne projekty AI skoro dalej masz problem ze zrozumieniem, że to o czym piszę nie dotyczy AI. Nigdzie też nie twierdziłem, że AI nie policzy względnych prędkości między obiektami w modelu 3D bazując na obrazie 2D. To co jest niemożliwe, to obliczenie prędkości w określonej jednostce jeżeli nie ma punktu odniesienia.

1
ralf napisał(a):

Nie wiem po co wklejasz kolejne projekty AI skoro dalej masz problem ze zrozumieniem, że to o czym piszę nie dotyczy AI. Nigdzie też nie twierdziłem, że AI nie policzy względnych prędkości między obiektami w modelu 3D bazując na obrazie 2D. To co jest niemożliwe, to obliczenie prędkości w określonej jednostce jeżeli nie ma punktu odniesienia.

"nie zawierającym żadnych wystandaryzowanych znaczników czy miar odległości" -> Przeciez dyskusja nie odnosci sie do kamery wiszacej w kosmosie tylko do kamery ktora nie ma zadnych sensownych metryk odległosci (slupki co 100m ...) ale ma punkt odniesienia do drogi, drzew itd. oraz bedzie badac predkosc w jednym miejscu sa to zupelnie rozne problemy -,- (ewentualnie ma punk odniesienia bo jest kamerka w samochodzie i ma informacje np. o twojej predkosci)

0

Czyli potrzebujesz parametry obiektywu kamery i jej pozycji?

2

Czy w opisywanym celu łatwiejsza nie byłaby analiza odbitego promienia z diody laserowej? Powiedzmy ustawienie jej pod kątem 45% do gruntu i analiza przesunięcia dopplerowskiego? Dałoby się nawet algorytmicznie to ogarnąć.

0
Freja Draco napisał(a):

Czy w opisywanym celu łatwiejsza nie byłaby analiza odbitego promienia z diody laserowej? Powiedzmy ustawienie jej pod kątem 45% do gruntu i analiza przesunięcia dopplerowskiego? Dałoby się nawet algorytmicznie to ogarnąć.

Pod warunkiem, że będzie to grunt. A jeśli pod spodem będzie szalejąca na wietrze wysoka trawa?

Chyba, że znowu będzie to średnia z iluś tam punków iluś tam laserów.

0
InfoMan napisał(a):
Freja Draco napisał(a):

Czy w opisywanym celu łatwiejsza nie byłaby analiza odbitego promienia z diody laserowej? Powiedzmy ustawienie jej pod kątem 45% do gruntu i analiza przesunięcia dopplerowskiego? Dałoby się nawet algorytmicznie to ogarnąć.

Pod warunkiem, że będzie to grunt. A jeśli pod spodem będzie szalejąca na wietrze wysoka trawa?

Dobra, pytanie brzmi: do czego ci to potrzebne? Masz zrobić projekt z trenowania sieci neuronowej na zaliczenie, czy masz zrobić własny system pomiaru prędkości?

Jeśli to drugie to pal licho grunt, analizujesz znacznik umieszczony na oponie: optycznie albo magnetycznie (jak w licznikach rowerowych) i dostajesz całkiem sensowne wyniki.

0

Jeśli to drugie to pal licho grunt, analizujesz znacznik umieszczony na oponie: optycznie albo magnetycznie (jak w licznikach rowerowych) i dostajesz całkiem sensowne wyniki.

Niesty to drugie.
I niestety nie ma opony, Ani nawet koła. To urządzenie latające ::(

0

OK, jest jeszcze klasyczny GPS, i chociaż geodeci podobno (!) mają dokładność do 0,5 cm, to pewnie wymaga to większej anteny i cięższego urządzenia *chyba). Nie sprawdziłem jeszcze.
Na razie szukam rozwiążania niezależnego od GPS. Ale jeśli ktoś ma przypadkiem wiedzę, to będę wdzięczny.

0
InfoMan napisał(a):

OK, jest jeszcze klasyczny GPS, i chociaż geodeci podobno (!) mają dokładność do 0,5 cm, to pewnie wymaga to większej anteny i cięższego urządzenia *chyba). Nie sprawdziłem jeszcze.
Na razie szukam rozwiążania niezależnego od GPS. Ale jeśli ktoś ma przypadkiem wiedzę, to będę wdzięczny.

Geodeci używają sygnału odniesienia z pomocniczego źródła o znanej lokalizacji, co pozwala korygować błąd celowo dodawany do nieszyfrowanego sygnału odbiorników cywilnych.

0

Zamiast przeglądać losowe przykłady z githuba wysyłane przez komuhera, których później się wypiera, przeglądnąłem kilka artykułów o mierzeniu prędkości. Tak jak pisałem zawsze pojawia się krok ze skalowaniem do miar ze świata rzeczywistego. Może być to cokolwiek, szerokość pasa ruchu, rozmiary samochodu, prędkość kamery itd

  • skalowanie przy założeniu, że większość pojazdów porusza się z maksymalną prędkością (w Polsce chyba by nie zadziałało)
  1. Calibrate center-pixel-distance/one-frame-duration between two consecutive frames to known speed limit of the road
    https://medium.com/datadriveninvestor/measuring-traffic-speed-with-deep-learning-object-detection-efc0bb9a3c57
  • tutaj dane treningowe na podstawie zmierzonych prędkości GPS

The data was created by equipping a car with static high-resolution colour and grayscale cameras and driving through streets of Karlsruhe, Germany. The ground truth was collected by using a Velodyne laser and
29 GPS, where the speed of the vehicle is can be calculated to meters per second (m/s).
https://esc.fnwi.uva.nl/thesis/centraal/files/f366183560.pdf

  • znowu kalibracja

If you don't care about the accuracy of your calculations, you can approximate the velocity in terms of pixels/seconds.
If you need more accurate result, the you need to calibrate your camera to determine its parameters such that you know the trajectory of your object and its movements from real world model to image model and define the final result in terms of m/s.
https://www.researchgate.net/post/How_do_I_detect_the_speed_of_a_car_with_opencv_and_python

1
ralf napisał(a):

Zamiast przeglądać losowe przykłady z githuba wysyłane przez komuhera, których później się wypiera, przeglądnąłem kilka artykułów o mierzeniu prędkości. Tak jak pisałem zawsze pojawia się krok ze skalowaniem do miar ze świata rzeczywistego. Może być to cokolwiek, szerokość pasa ruchu, rozmiary samochodu, prędkość kamery itd

Nie no masz racje reasearch w ktorym bralo udzial 20 topowych uniwersytow vs Hindus z medium oraz odpowiedzi sprzed 5 lat XD (pro tip ML wtedy raczkowal i to ledwo co)

I jedyny sensowny link jaki podeslales czyli jakis papier od razu mówi o tym ze algorytm nie korzysta z zadnych informacji dotyczacych miar odleglosci wpisanych na sztywno ani ustawien kamery tylko i wylacznie ze zdjec.

Our main contribution is that we directly learn velocity from images. No extra
calculations have to be performed to determine the velocity of the vehicle. Additionally,
we will learn velocity from the vehicle’s point of view (ego-vehicle speed). Traditional
optical flow approaches are static cameras that track movement in the image. The same
approach is used to track vehicles on the road. We place a camera on a vehicle and
use those images to learn velocity. This will cause each pixel in the image to move,
leaving our model to learn velocity when each pixel in the image has moved. Though
much research was conducted into measuring velocity, this has led to new sensors such
as accelerometers that can only measure velocity. With our approach, a camera can
be used to determine the velocity of the vehicle. The images can be used to determine
the velocity of the vehicle, but image analysis techniques can be used to determine the
environment of the vehicle and more. To our knowledge, there has been no research into
learning velocity from two consecutive images before.

I znowu mylisz pojecia -> algorytm vs dane treningowe co z tego ze zebrane dane sa z predkosci GPS'a to nie znaczy ze budujac algorytm musisz mu podawac dane z GPSa

5.2.1 Data set <-------
The data was created by equipping a car with static high-resolution colour and grayscale cameras and driving through streets of Karlsruhe, Germany. The ground truth was collected by using a Velodyne laser and
29 GPS, where the speed of the vehicle is can be calculated to meters per second (m/s).
https://esc.fnwi.uva.nl/thesis/centraal/files/f366183560.pdf

Dalej kolejny podpunkt

5.1 Experiment 1: Measuring Time
We will use TimeNet to predict the time that has passed between frames. The model
must learn what time looks like, by analysing the size of the displacement.
Given a stationary camera at the side of the road that records images at a fixed
frame rate (FPS) of a vehicle driving by at a fixed speed. Between frames f0 and f1,
the car will have moved over a certain distance. Since the distance to the vehicle and
the speed of the vehicle are fixed, the model will be able to learn how much time has
passed. If we keep the velocity of the vehicle the same, but increase the time between
f0 and f1, the vehicle will have travelled a larger distance. If TimeNet can learn the
relation between the magnitude of these displacements, it will have learned how much
time has passed between the frames.
The observed object will have to move at the same pace and distance across the receptive field of the camera. If the object moves closer or changes pace, the displacements
across the image will change. This will make it difficult for TimeNet to learn time from
image pairs

I kolejny

5.2 Experiment 2: Predicting Velocity
This experiment entails the core of our research; for the model to learn velocity. We will
use SpeedNet to do this. SpeedNet must learn that the magnitude of each displacement
can be different over the same time span and learn that this indicates speed. If the
model is successful to map the size of a displacement to a speed, the model has learned
what speed looks like.
Given a stationary camera mounted on a car that records images at a fixed FPS, the
camera will capture images while the car drives around. By looking at all moving parts
in the image, SpeedNet must determine how fast the car is driving. This is a different
problem to learning time, since each pixel in the image will move and there are no fixed
speeds. Additionally, there is other traffic, pedestrians and buildings that could make it
difficult for the model to generalise well. However, if the model is successful in building
an internal representation of each speed it will be able to predict speed.

I na koniec wyniki

Average error To gain insight into our models’ performance, we track their average
prediction error, which is displayed in Table 3. It is shown that SpeedNetSimple has
the smallest average prediction error over the entire test set, whereas LassoCorr has the
largest average prediction error. Between the Correlation and Simple models, the Simple
models outperform the Correlation models.
Model Average error
LassoCorr 3.75
LassoSimple 2.74
SpeedNetCorr 2.39
SpeedNetSimple 2.05
Table 3: Average error per measured velocity in m/s, per model.

Jest to papier powstajacy w roku 2016 wiec 3 lata temu dlatego ja podsylalem linki do rozwiazan sprzed roku ale to tez wystarczy,
Dziekuje do widzenia XD

Przytocze jeszcze tylko problem o ktorym jest dyskusja

Czy ... da się wytrenować siatkę sztucznej inteligencji aby na podstawie obrazu z kamery umieszczonej nad gruntem (nie zawierającym żadnych wystandaryzowanych znaczników czy miar odległości) potrafiła określać szybkość poruszania się pojazdu (w przedziale 0-30 km/h)?

0

Nadal nie rozumiesz istoty problemu, metr i sekunda są wartością umowną. Ale dobrze dalej wierz w swoją magiczną AI :)

2

TL:DR Wątku jak komuś nie chcę sie czytać miliona wiadomosci.

Czy Waszym zdaniem, a może przypadkiem jest tu ktoś, kto się tym bawi(ł), da się wytrenować siatkę sztucznej inteligencji aby na podstawie obrazu z kamery umieszczonej nad gruntem (nie zawierającym żadnych wystandaryzowanych znaczników czy miar odległości) potrafiła określać szybkość poruszania się pojazdu (w przedziale 0-30 km/h)?

Wedlug mnie sie da i na to wskazuje opracowanie naukowe podeslane m.in. przez ralf.
A chlopcy chyba nie rozumieją o co sie kłócą bo ja sam nie wiem o co chodzi w metrach ralf'a przeciez dyskusja odnosila sie do kalibracji kamery.

0
InfoMan napisał(a):

Jeśli to drugie to pal licho grunt, analizujesz znacznik umieszczony na oponie: optycznie albo magnetycznie (jak w licznikach rowerowych) i dostajesz całkiem sensowne wyniki.

Niesty to drugie.
I niestety nie ma opony, Ani nawet koła. To urządzenie latające ::(

Z tego co pamiętam w starych samolotach robiono prędkościomierze mierzące prędkość przepływu powietrza. Rozwiązanie niestety niedokładne.

Inna możliwość to nawigacja bezwładnościowa:
https://pl.wikipedia.org/wiki/Nawigacja_inercyjna
rozwiązanie również niedokładne.

Zostaje jeszcze lidar i GPS.

0

" Pytanie jest czy da się 'wytrenować' bez żadnych innych pomocy na podstawie samego obrazu. We wspomnianym artykule do skalowania potrzebowali danych z przejazdów z GPSem - ralf 2019-08-30 15:28
Ale ja skopiowałem pytanie autora wpisu nie twoją interpretację, autor nic nie piszę o tym że chce trenować bez przykładów treningowych co jest niemożliwe ale o tym że na kamerze nigdzie nie będzie wystandaryzowanych miar odległości. Myślę że wystarczy zawołać autora wpisu i poczekać na jego odpowiedź. - machineko 2019-08-30 15:35 "

Autor pytania odpowiada ;)

  • Nie mam ograniczeń co do wcześniejszej kalibracji systemu czy uczenia AI w oparciu o wystandaryzowane miary. Definicja problemu: jak zmierzyć odległość i szybkość bez używania na trasie GPS, albo używając go tylko jako uzupełnienie gdyż w cywilnej wersji jest zbyt niedokładny.
    Nie wyobrażam sobie jak trenować bez wzorca, bo przecież w każdym przypadku musi być jakaś wartość, jakiś stały punkt odniesienia, do którego się porównujemy.

  • Pytanie jest raczej o to jak zestaw (kamera + AI) ma widzieć odległość. Dopuszczam nawet umieszczenie w polu widzenia kamery normalnej miarki np. 0,5 metra i mierzenie czasu w jakim dany obiekt (/chmura obiektów) widziany okiem kamery w kolejnych kadrach razem z miarką przesuwa się w dół. Pytanie tylko jak duży powinien być obszar widzenia kamery (i wystandaryzowanej miarki) aby przy szybkości rzędu 20 km/godz obiekt na gruncie (np. kamyk czy nierówność) był wystarczająco długo w polu jej widzenia.

0

Geodeci używają sygnału odniesienia z pomocniczego źródła o znanej lokalizacji, co pozwala korygować błąd celowo dodawany do nieszyfrowanego sygnału odbiorników cywilnych.

A wiesz może czy istnieją, małe, mobilne rozwiązania,które są wyposażone w taką funkcjonalność? Albo może o ile większy jest taki moduł lokalizacji w stosunku do klasycznego modułu GPS?

0
InfoMan napisał(a):

A wiesz może czy istnieją, małe, mobilne rozwiązania,które są wyposażone w taką funkcjonalność? Albo może o ile większy jest taki moduł lokalizacji w stosunku do klasycznego modułu GPS?

Nie znam się na tym, znam tylko ogólne teoretyczne podstawy:

https://pl.wikipedia.org/wiki/R%C3%B3%C5%BCnicowy_GPS

Szukaj odbiorników DGPS.

1 użytkowników online, w tym zalogowanych: 0, gości: 1