Skocz do zawartości

Program do rozpoznawania śladów traktora na ziemi w Pythonie


AntekBezak

Pomocna odpowiedź

Witam.

 

Od jakiegoś czasu próbuję napisać program który będzie rozpoznawał ślady traktora na ziemi. Próbowałem już z bibliotekami TensorFlow i PyTorch do sieci neuronowych, a teraz uczę się OpenCV, ale wszystkie próby zakończyły się klęską. Moim głównym celem jest zbudowanie układu który będzie obracał kierownicą w traktorze, ale chyba nie ma co się zabierać za hardware jak nie umiem nawet rozpoznać czy na ziemi w ogóle jest ślad. Oto zdjęcia których używam do testów:

1751257842_sladylatwe.jpg.1655df309931a08f581de21fab3e2e9f.jpgslady.jpg.db88c019b1f1499feef47e3e4c966cc8.jpg479388212_sladytrudne.thumb.jpg.ff6bf7df80b2a2dbbfee6aaffc612690.jpg

                         Level 1                                                          Level 2                                                         Level 3

Przy okazji proszę o informację jak mogę podpisywać zdjęcia w lepszy sposób niż te powyżej.

Edytowano przez AntekBezak
Link do komentarza
Share on other sites

Jako, że się nie znam, to się wypowiem. Wykrywaniem obiektów w obrazie zajmowałem się akademicko prawie 20 lat temu.
Ale za moich czasów nie wrzucało się takich obrazków na żywca, ale robiło się jakąś wstępna obróbkę przed klasyfikowaniem.
Gdybym teraz miał wykrywać ślady traktora, bym najpierw użył jakiegoś filtra wykrywającego krawędzie i takimi obrazami spróbował trenować.

image.thumb.png.560298555b072ac7b72caa938b88d1a9.png

Potem oczywiście musisz "on the fly" przetwarzać obraz z kamery...

 

Edytowano przez pmochocki
Link do komentarza
Share on other sites

(edytowany)
Dnia 19.12.2022 o 07:04, FlyingDutch napisał:

jaki masz model sieci: typ sieci neuronowej, liczba warstw ich typ

Jeszcze nie mam żadnej sieci neuronowej ponieważ na potrzeby nauki starałem się zrobić taką do rozpoznawania kotów i psów, ale w pewnym momencie w kursie dotarłem do momentu gdzie trzeba było robić coś z kartami graficznymi, a moja nie należy do tych najlepszych, natomiast kiedy pominąłem ten fragment to komendy pokazywane w dalszej części kursu u mnie nie działały.

 

17 godzin temu, pmochocki napisał:

Gdybym teraz miał wykrywać ślady traktora, bym najpierw użył jakiegoś filtra wykrywającego krawędzie i takimi obrazami spróbował trenować.

Faktycznie, to mogłoby ułatwić wykrywanie. Robiłem coś takiego c OpenCV, ale nie pomyślałem żeby załadować to do sieci neuronowej.

 

Może ktoś zna gotowy szablon do takiej sieci który można łatwo spersonalizować?

Edytowano przez AntekBezak
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Ja używałem wytrenowanego wcześniej modelu sieci CNN do rozpoznawania i klasyfikacji obrazów, wyciąłem z niego trzy ostatnie warstwy, dodałem nowe i je trenowałem.

To jest tak zwane "Transfer Learning" i w przypadku wykrywania ludzi i fragmentów ich ciał zadziałało z rezultatem około 95.4 procent poprawnych detekcji. Niestety jest wymagana dość duża baza przykładów. Zobacz ten linki:

https://towardsdatascience.com/4-pre-trained-cnn-models-to-use-for-computer-vision-with-transfer-learning-885cb1b2dfc

https://data-science-blog.com/blog/2022/04/11/how-to-choose-the-best-pre-trained-model-for-your-convolutional-neural-network/

https://www.mathworks.com/help/deeplearning/ug/pretrained-convolutional-neural-networks.html

Ja używałem wstępnie wytrenowanego modelu "mobilenetv2". Do nauki modelu używałem framework'a Keras. w przypadku małej bazy przykładów jest wręcz zalecane powielenie ilość zdjęć poprzez różne przekształcenia (obroty, zmiany kolorów i jasności).

Naprawdę polecam przejść cały kurs, który wkleiłem w pierwszym poście, jest bardzo dobry.

BTW: do trenowania sieci neuronowej w Keras możesz użyć bezpłatnego konta "Google Colaboration" (ja tak zrobilłem),  tam jest wsparcie sprzętowe potężnych kart graficznych NVidii i modułów TPU.

Użycie pomocniczo "OpenCV" w programie do obróbki zdjęć przeważnie jest konieczne. W sieci są dostępne uniwersalne bazy zdjęć, może w nich znajdziesz coś co Cię interesuje - bazy są jednak bardzo duże (nawet 50 GB do pobrania).

Pozdrawiam

Edytowano przez FlyingDutch
  • Lubię! 2
Link do komentarza
Share on other sites

13 godzin temu, FlyingDutch napisał:

do trenowania sieci neuronowej w Keras możesz użyć bezpłatnego konta "Google Colaboration"

Dzięki! Próbowałem uczyć się Keras w Visual Studio Code, ale chyba zepsułem bibliotekę bo wszystkie komendy zaczynające się na "tensorfolw." powodowały błąd.

 

13 godzin temu, FlyingDutch napisał:

Naprawdę polecam przejść cały kurs, który wkleiłem w pierwszym poście, jest bardzo dobry

W wolnej chwili poświęcę na to trochę czasu, ale chodzi mi głównie o kurs w którym będzie pokazany kod, a po przejrzeniu tego kursu tam nic takiego nie ma (chyba że coś przeoczyłem).

Link do komentarza
Share on other sites

Zainstalowałem fastai i PyTorch, ale nie działa. Polecenie "import fastai" wyświetla następujący błąd:

Traceback (most recent call last):
  File "Ścierzka/do/pliku/fastai test.py", line 1, in <module>
    import fastai
ModuleNotFoundError: No module named 'fastai'

Link do komentarza
Share on other sites

Anonim
Ten temat został zamknięty.
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.