Skocz do zawartości

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


Pomocna odpowiedź

Napisano (edytowany)

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
(edytowany)

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
(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
(edytowany)

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
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).

Wygląda ciekawie. Jak mogę to zainstalować? Bo próbowałem już na kilka różnych sposobów i mi się nie udało...

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'

Gość
Ten temat został zamknięty.
×
×
  • Utwórz nowe...